我可以在同一台机器上的两个进程之间共享 class 个实例而不必 serialize/deserialize 吗?

Can I share class instances between two processes on the same machine without having to serialize/deserialize?

我有相当大的 collections 个 object 个实例 (>100mb),我需要在同一台机器上的两个进程之间共享这些实例。有没有办法分享这样的 collections 而不必 serialize/deserialize?

我考虑过消息总线,但我需要 serialize/deserialize object 个实例,这是一个 no-go,因为开销太耗时了。此外,内存映射文件似乎涉及将 object 实例序列化为文件。

我在 Windows 7 OS 上以 C#/.Net 4.5 为目标。

谢谢

您不能在进程之间共享活动对象。

您不能强制 .NET 将对象保留在内存映射区域中 and/or 以将对象附加到 "data" 存在于内存映射区域中。

曾几何时,.NET Remoting 在进程之间进行通信...它的级别非常低...它仍然存在,但已经过时了。通过使用内部黑魔法,有时(参见 )而不是 serializing/deserializing 对象,它能够在一侧创建 "proxy" 以访问另一侧的数据。请注意,这显然很慢。啊...代理对象并不是真正的"local"...我认为非所有者必须调用对象的所有者("server")才能对对象进行任何操作代理对象。所以它们 "shared" 就像您在 HD 上共享文件一样:"client" 计算机可以读取它,但是要读取它,"server" 必须读取它并将读取的数据发送到"client".