Serializable Objetos com Campos de MarshalByRefObject
-
16-09-2019 - |
Pergunta
Tudo bem, eu não tenho certeza se esta pergunta tem sido feita antes, então se ele tem, em seguida, a chama de distância.Vamos dizer que temos duas classes como este
[Serializable]
public class ClassA
{
private string _name;
private ClassB _data;
}
public class ClassB : MarshalByRefObject
{
public string GetAppDomainName()
{
return AppDomain.Current.FriendlyName;
}
}
Como você pode ver ClassA mantém uma referência para ClassB mas a classe B herda da classe MarshalByRefObject.A minha pergunta é quando eu tentar passar ClassA para outro Domínio de aplicação como posso obter ClassA para serializar a maneira como ele normalmente faria, exceto passar _data de campo para o novo Domínio de aplicação como um proxy transparente?
Qualquer ajuda é bem-vinda :)
Solução
Tem ClassA derivar de MarshalByRefObject, pois é o objeto que você deseja remoto para o outro Domínio de aplicação.
E você pode implementar ISerializable http://msdn.microsoft.com/en-us/library/system.runtime.serialization.iserializable.aspx
Tipos deve herdar de MarshalByRefObject quando o tipo é usado através de aplicação de limites de domínio, e o estado do objeto não deve ser copiado, pois os membros do objeto não são utilizáveis fora do domínio de aplicação, onde eles foram criados.