.net С # Анонимные каналы - неправильно?

У меня есть приложение родительской формы Windows и дочерний commandline.exe. Используя модифицированный пример MSDN для анонимных каналов (h ttp: //msdn.microsoft.com/en-us/library/bb546102.aspx ), я могу отправить сериализованный объект от родителя к дочернему . Потомок может десериализовать объект и прочитать значения.

Возможно, я неправильно понимаю механизм анонимного канала, однако я ожидаю, что канал останется открытым, пока я его не закрою, так что я могу отправить другой объект, когда захочу, однако после отправки / получения объекта канал больше не подключен (определяется свойством IsConnected).

В настоящий момент, когда объект пересылается от родителя к потомку, канал закрывается (не «мной»). Я поддерживаю ссылку на исходный pipeHandle локально, но не могу повторно открыть канал. Должен ли я иметь возможность или не должен был вообще закрыться? Я не понимаю, как я могу открыть еще один новый канал, поскольку я не могу передать дескриптор от родителя к клиенту (начальный дескриптор канала был передан args в первом экземпляре)

Как мне отправить другой объект из родительского ребенку?

Я понимаю, что могу использовать именованные каналы, но MSDN рекомендует использовать анонимные каналы для IPC на том же локальном компьютере.

Большое спасибо

Арни

5
задан Rowland Shaw 26 January 2011 в 17:28
поделиться