2进程如何调用DLL,两者都会与它的1个实例进行对话?

时间:2014-10-03 08:52:49

标签: c# .net

想象一下这个简单的场景:

我在.NET中创建了一个Class-Library DLL,它有1个类, 这个类有2个字段(具有匹配的Get + Set属性): - int A - int B

现在我创建了一个名为Program1的可执行文件,它引用了该DLL,并实例化了上面提到的类, 我还创建了第二个可执行文件,名为Program2,它也引用了该DLL,并实例化了所提到的类。

通过这种方式,我有2个程序:Program1和Program2, 并且两者都将在DLL中创建类的单独实例。

但是如果我希望Program1和Program2与该类的 1个共享实例交谈呢?

我该怎么做?

1 个答案:

答案 0 :(得分:5)

你不能这样做。程序集在自己的AppDomain中加载,在Windows上拥有自己的进程。因此,默认情况下,实例独立存在。

您可以使用一些共享内存解决方案,例如自.NET 4.0以来支持的Memory-Mapped Files。可以在SO上找到旧版.NET的参考:How to implement shared memory in .NET?