what happens when an object derives from MarshalBy

2019-05-11 16:50发布

I'm working on my first project that uses AppDomains and I'm wondering what happens when an object derives from MarshalByRefObject and is also marked [Serializable]?

for example:

[Serializable]
public class DummyClass: MarshalByRefObject
{

}

1条回答
时光不老,我们不散
2楼-- · 2019-05-11 17:49

It gets marshalled by reference, but can still be serialised for other use-cases for serialisation. There's an implementation detail to this that is interesting enough to be worth noting: The formatter that is serialising for remoting uses a SurrogateSelector that will produce a proxy for any MarshalByRefObject it serialises, hence serialising will still result in marshalling by reference. Other serialisation uses won't have that SurrogateSelector and so won't have that effect.

查看更多
登录 后发表回答