Question

D'accord, je ne sais pas si cette question a été posée si elle a la flamme alors loin. Disons que nous avons deux classes comme celle-ci

[Serializable]
public class ClassA
{
    private string _name;
    private ClassB _data;
}


public class ClassB : MarshalByRefObject
{
    public string GetAppDomainName()
    {
      return AppDomain.Current.FriendlyName;
    }  
}

Comme vous pouvez le voir ClassA contient une référence à ClassB mais la classe B hérite de la classe MarshalByRefObject. Ma question est quand je tente de passer ClassA à un autre AppDomain comment puis-je ClassA sérialiser la façon dont il passe normalement, sauf le champ _data à la nouvelle AppDomain comme proxy transparent?

Toute aide est appréciée:)

Était-ce utile?

La solution

Vous ClassA tirer de MarshalByRefObject car il est l'objet que vous voulez à distance à l'autre AppDomain.

Et vous pouvez mettre en œuvre ISerializable http: // msdn.microsoft.com/en-us/library/system.runtime.serialization.iserializable.aspx

Les types doivent hériter de MarshalByRefObject lorsque le type est utilisé dans les limites du domaine d'application, et l'état de l'objet ne doit pas être copié parce que les membres de l'objet ne sont pas utilisables en dehors du domaine d'application où ils ont été créés.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top