2010-05-24 63 views
2

我们知道MarshalByRef允许我们在不同的AppDomain中创建一个对象并使用Proxy对象来访问它。该对象的行为与AppDomain实际所处的环境不同。这听起来在隔离性和安全性方面相当接近。MarshalByValue对象有什么意义?

但为什么还有MarshalByValue? MarshalByValue只会导致一个新反序列化的对象,它是不同AppDomain中对象的精确副本。如果我们需要这个对象,为什么不在当前的AppDomain中创建它?为什么还要先在不同的AppDomain中创建它,然后通过MarshaoByValue取回它?

非常感谢。

回答

2

MSDN措施: -

当考虑MarshalByRefObject的 对象,该对象上的所有电话都 往返到服务器。有时, 需要编组值 而不是引用的对象, 以便后续对编组对象的调用将是本地而不是远程的 。在DCOM中,执行 元帅值对象需要 大量工作。使用.NET远程处理, 所需的全部内容是按值返回的 对象是可串行化的 。

+0

你真棒。 :) – smwikipedia 2010-05-24 07:17:20