.NET has a thing called remoting where you can pass objects around between separate appdomains or even physical machines. I don\'t fully understand how the magic is done, he
The magic seems to be in a special TransparentProxy
class - the .NET Runtime handles it in a special way.
I think that MarshalByRefObject
may contain some additional internal information which can be helpful for this mechanism, but I haven't looked much into that.