我正在开发第一个使用AppDomains的项目,我想知道当一个对象派生自MarshalByRefObject并且还标记为[Serializable]时会发生什么?
例如:
[Serializable]
public class DummyClass: MarshalByRefObject
{
}
答案 0 :(得分:1)
它通过引用进行编组,但仍然可以序列化以用于序列化的其他用例。有一个实现细节很有趣值得注意:为远程处理序列化的格式化程序使用SurrogateSelector
,它将为其序列化的任何MarshalByRefObject
生成代理,因此序列化仍将导致通过引用编组。其他序列化用途不会具有SurrogateSelector
,因此不会产生这种效果。