有没有办法在 AppDomain 之间高效共享或移动 .NET 对象?我意识到 AppDomains 的目的是提供隔离 - 但是我有一个情况,我需要移动一组相对较大的缓存不可变对象,这些对象的计算和创建成本很高。目前,我有一种有效的序列化方法,但速度相当慢。
如果不序列化对象,则无法在 AppDomain 中移动对象。这是 AppDomain 的要点 - 您几乎可以将其视为一个完全独立的进程。
这就是 MarshalByRefObject 发挥作用的地方。它可以让你use通过远程处理从其他 AppDomain 获取对象,而无需跨 AppDomain 边界对其进行序列化。您仍然通过远程处理工作,因此它比将对象保留在同一个 AppDomain 中要慢,但如果对象很大并且您不经常使用它,那么与序列化它和反序列化相比,这可以节省大量时间它在第二个 AppDomain 中创建一个新副本。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)