У меня проблемы с NamedPipeWrapper V1.5 (https://github.com/acdvorak/named-pipe-wrapper) при попытке установить связь между двумя процессами.
Соединения успешно установлены, но фактический обмен сообщениями не работает при компиляции.
Смущает то, что когда я использую пошаговую отладку в Visual Studio, отправляется PushMessage. Когда я просто запускаю код, функция PushMessage не работает, и я не могу обернуть головупочему.
Я прочитал о включении пользовательского класса сообщений вместо использования строки для сообщений и создал сериализуемый класс, который должен использоваться для сообщения. К сожалению, это не помогло.
Код сервера:
private readonly NamedPipeServer<Message> _server = new NamedPipeServer<Message>("SomePipeName");
private readonly ISet<string> _clients = new HashSet<string>();
public MainWindow()
{
InitializeComponent();
_server.ClientConnected += OnClientConnected;
_server.ClientMessage += delegate (NamedPipeConnection<Message, Message> connection, Message message)
{
MessageBox.Show(message);
};
_server.Start();
}
private void OnClientConnected(NamedPipeConnection<Message, Message> connection)
{
_clients.Add(connection.Name);
MessageBox.Show("This works! Connected"); //This part works fine
}
Связанный код клиента:
public static readonly NamedPipeClient<Message> _client = new NamedPipeClient<Message>("SomePipe");
public static void Main(string[] args)
{
_client.Start();
_client.PushMessage(new Message() { Text = "hey there!" });
_client.WaitForDisconnection();
}
Класс сообщения:
[Serializable]
public class Message
{
public string Text { get; set; }
}
Я добавил часть _client.WaitForDisconnection () как частьрешение проблемы, но это не имело никакого значения.
Любая идея приветствуется! :))нг кстати, работаю над этим!:))