如何在另一个进程中访问.Net对象?

时间:2011-06-07 09:05:10

标签: .net wcf process components

我正在运行.Net应用程序。

我想要另一个.Net应用程序连接第一个应用程序并在其中一个对象上调用公共方法。

我知道我可以通过WCF实现这一点,但我的理解是.Net对象是COM意义上的所有组件,因此我假设可以在同一台机器上跨进程边界进行编组。

这可能吗?如果是这样,我如何从第二个应用程序中获取第一个应用程序中的对象?

非常感谢您的帮助。

2 个答案:

答案 0 :(得分:1)

您的理解不正确。默认情况下,.NET类不是COM对象。但是,您可以按类别或整个装配使COM可见 话虽如此,这对你没有帮助,因为COM对象正在使用它们的进程在进程中运行,即它在你的第二个应用程序中运行。您无法连接到此类其他应用程序 你真的应该使用WCF来完成这项任务。

答案 1 :(得分:1)

可以跨进程边界访问从MarshalByRefObject继承的任何对象(这与COM可见不同)。这就是wcf将在发动机罩下使用的。

但是,如果你使用wcf而不是(低级)Remoting,那么你允许跨越机器边界的长期选项(远程操作确实允许你这样做,但它甚至比wcf更复杂...... < strong>编辑 - 也不太安全,如daniel在下面评论中提供的链接中所述。)

简而言之,我同意丹尼尔 - 你最好坚持使用WCF - 以便将来的选择和易用性。