好吧,我不确定以前是否有人问过这个问题,所以它是否已经消失了。假设我们有两个这样的类
[Serializable]
public class ClassA
{
private string _name;
private ClassB _data;
}
public class ClassB : MarshalByRefObject
{
public string GetAppDomainName()
{
return AppDomain.Current.FriendlyName;
}
}如您所见,ClassA包含对ClassB的引用,但是B类继承自MarshalByRefObject类。我的问题是,当我试图将ClassA传递给另一个AppDomain时,除了将_data字段作为透明代理传递给新的AppDomain之外,我如何才能让ClassA以通常的方式进行序列化?
如有任何帮助,我们将非常感谢:)
发布于 2009-04-24 02:24:59
让ClassA从MarshalByRefObject派生,因为它是您想要远程到另一个AppDomain的对象。
并且您可以实现ISerializable http://msdn.microsoft.com/en-us/library/system.runtime.serialization.iserializable.aspx
当跨应用程序域边界使用类型时,必须从MarshalByRefObject继承该类型,并且不得复制对象的状态,因为该对象的成员在创建它们的应用程序域之外不可用。
https://stackoverflow.com/questions/784291
复制相似问题