将对象从一个进程传递到另一个进程

sun*_*der 6 .net ipc process

我有两个.NET托管程序集.第一个是主要应用程序,一个是独立工具.

现在我要做的是将小工具与主应用程序集成.因此,当用户单击主应用程序中的按钮时,需要将"用户定义的对象"传递给另一个小工具,该工具将运行到另一个不同的独立进程.

但是我们只能向进程发送一个字符串参数.

有什么方法可以做到这一点?我需要发送到另一个进程的是具有每个文件设置的文件列表.这里的设置是我的"用户定义对象".

我有另一个转折点.

如果您正在处理的第一次没有运行,我将向其发送参数并运行该过程.但是如果进程正在运行,我是否可以向其发送参数并将数据附加到现有数据,而无需从头开始重新启动它.

对此有任何帮助.如何做到这一点.

谢谢

Mar*_*ell 5

在最简单的层面上,您可以将一个位置传递给包含序列化对象或一些其他配置选项的文件(可能在临时区域中)。

更有趣的是,您可以传递一些 IPC 通道信息 - 可能是连接套接字的端口号等 - 并建立您喜欢的任何类型的 IPC:远程处理、WCF、原始套接字等等。

  • 其他选项是使用标准输入 - 如果您的工具旨在从 std 输入读取,那么您的主应用程序可以通过重定向子进程(工具)的标准输入来传递序列化信息! (3认同)

sun*_*der 0

对于上述问题,我找到了两个很好的解决方案。

\n\n

1) 构造一个数据表,其中所有给定的输入作为列,并将其写入 xml。并使用该文件作为输入启动一个进程,并将该 xml 文件读取到调用的进程中。\n在此解决方案中,我无法控制我的新进程,我什至可以\xe2\x80\x99t 调试它。我在做这件事时发现了很多复杂性。

\n\n

2)因此找到了这个解决方案,将exe添加为解决方案的引用,并简单地使用文件作为输入来调用它,就像对程序集的简单调用一样。现在可以完全控制它。我什至可以进行异常处理。

\n\n

谢谢大家的回复。

\n