Oggetti serializzabili con MarshalByRefObject campi
-
16-09-2019 - |
Domanda
Va bene, io non sono sicuro se questo problema è stato fatto prima in modo se ha poi fiamma via. Diciamo che abbiamo due classi come questo
[Serializable]
public class ClassA
{
private string _name;
private ClassB _data;
}
public class ClassB : MarshalByRefObject
{
public string GetAppDomainName()
{
return AppDomain.Current.FriendlyName;
}
}
Come si può vedere ClasseA contiene un riferimento a ClassB ma di classe B eredita dalla classe MarshalByRefObject. La mia domanda è quando si tenta di passare ad un altro dominio di applicazione ClasseA come posso ottenere ClassA serializzare il modo in cui normalmente sarebbe tranne passare il campo _data al nuovo dominio applicazione come un proxy trasparente?
Ogni aiuto è apprezzato:)
Soluzione
Hanno ClasseA derivano da MarshalByRefObject dal momento che è l'oggetto che si desidera remota all'altra dominio di applicazione.
E si può implementare ISerializable http: // msdn.microsoft.com/en-us/library/system.runtime.serialization.iserializable.aspx
Tipi devono ereditare da MarshalByRefObject quando il tipo viene utilizzato attraverso i confini del dominio di applicazione, e lo stato dell'oggetto non può essere copiato, perché i membri dell'oggetto non sono utilizzabili al di fuori del dominio di applicazione in cui sono stati creati.