MarshalbyRefobject 필드가있는 직렬화 가능한 객체
-
16-09-2019 - |
문제
좋아,이 질문이 전에 묻는 지 잘 모르겠습니다. 이와 같은 두 가지 수업이 있다고 가정 해 봅시다
[Serializable]
public class ClassA
{
private string _name;
private ClassB _data;
}
public class ClassB : MarshalByRefObject
{
public string GetAppDomainName()
{
return AppDomain.Current.FriendlyName;
}
}
보시다시피 Classa는 ClassB에 대한 참조를 보유하고 있지만 Class B는 MarshalbyRefobject 클래스에서 상속됩니다. 내 질문은 Classa를 다른 AppDomain으로 전달하려고 할 때 Classa가 _Data 필드를 투명한 프록시로 새로운 AppDomain으로 전달하는 것을 제외하고는 Classa가 정상적으로 일련의 방식을 직렬화 할 수 있습니까?
모든 도움이 감사합니다 :)
해결책
Classa는 MarshalbyRefobject에서 파생되도록해야합니다.
그리고 iserializable을 구현할 수 있습니다 http://msdn.microsoft.com/en-us/library/system.runtime.serialization.iserializable.aspx
유형이 응용 프로그램 도메인 경계에서 유형을 사용하면 유형이 MarshalbyRefobject에서 상속되어야하며, 객체의 부재는 생성 된 응용 프로그램 도메인 외부에서 객체 부재를 사용할 수 없기 때문에 객체의 상태를 복사해서는 안됩니다.
제휴하지 않습니다 StackOverflow