.Net Activator.GetObject (유형 유형, 문자열 url, 객체 데이터)는 객체에 대한 프록시를 반환합니다. 프록시는 MarshalByRefObject에서 상속 받았으며 AppDomains를 통해 보낼 수 있다고 생각합니다. 내가 맞습니까?Activator.GetObject - MarshalByRefObject
내 응용 프로그램에서는 appdomain A에서 개체를 만들고 appdomain B를 사용하고 있습니다. 개체의 멤버는 Activator.GetObject()를 사용하여 만든 프록시 개체입니다. 그래서 AppDomain B에있을 때 appdomain A에서 생성 된 객체에 투명한 프록시가 있습니다. 프록시 객체에서 메서드 호출을 실행하려고하면 오류가 발생합니다.
예를 들어, App Domain B에 Connection 객체를 만듭니다. App Domain A의 Connection 객체에 대한 투명한 프록시가 있습니다. AppDomain A에서 이처럼 호출하려고하면 오류가 발생합니다. ConnectionObject .SecurityProxy.GetSecurityAccount(). 위와 같은 호출을 시도하면 AppDomain B에 대한 호출을 전달하는 대신 AppDomain A에서 SecurityProxy를 다시 작성하려고 시도합니다. 보안 프록시는 AppDomain B에서 이미 생성되었습니다. 연결시 개체가 생성되었습니다.
제가 잘못하고있는 것을 알아내는 데 도움주세요.
감사합니다, Anil. SecurityProxy이 ConnectionObject의 속성이라고 가정
왜 두 개의 appdomain간에 통신하기 위해 URL과 함께 GetObject 메서드를 사용합니까? 다른 appdomain에서 객체를 생성하는 것은 CreateInstance를 사용하여 수행 할 수 있습니다. 또한 오류에 대해 이야기하고 있습니까? –