当对象派生自 MarshalByRefObject 并且也被标记为 [可序列化] 时会发生什么情况



我正在处理我的第一个使用 AppDomain 的项目,我想知道当一个对象派生自 MarshalByRefObject 并且也被标记为 [可序列化]时会发生什么?

例如:

[Serializable]
public class DummyClass: MarshalByRefObject
{
}

它通过引用进行编组,但仍然可以针对其他序列化用例进行序列化。有一个非常有趣的实现细节值得注意:为远程处理序列化的格式化程序使用一个SurrogateSelector,该将为其序列化的任何MarshalByRefObject生成代理,因此序列化仍会导致通过引用封送。其他序列化用途不会有这种SurrogateSelector,因此不会有这种效果。

相关内容

最新更新