Frage

Okay, ich bin mir nicht sicher, ob diese Frage schon einmal gestellt wurde. Nehmen wir an, wir haben zwei Klassen wie diese

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


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

Wie Sie sehen können, hat Classa einen Verweis auf ClassB, aber die Klasse B erbt aus der MarshalbyRefObject -Klasse. Meine Frage ist, wenn ich versuche, Classa an eine andere Appdomain zu übergeben, wie kann ich Classa dazu bringen, die Art und Weise zu serialisieren, wie es normalerweise das Feld _data als transparenter Proxy an die neue Appdomain übergeben würde?

Jede Hilfe wird geschätzt :)

War es hilfreich?

Lösung

Lassen Sie die Klasse von MarshalbyrefObject abgeleitet, da es das Objekt ist, das Sie zum anderen Appdomain entfernt möchten.

Und Sie können iSerializable implementieren http://msdn.microsoft.com/en-us/library/system.runtime.serialization.iserializable.aspx

Die Typen müssen von MarshalbyrefObject erben, wenn der Typ über die Bewerbungsdomänengrenzen verwendet wird, und der Zustand des Objekts darf nicht kopiert werden, da die Mitglieder des Objekts außerhalb der Anwendungsdomäne, in der sie erstellt wurden, nicht verwendet werden können.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top