MarshalByRefObject를 통해 .net Remoting을 사용하는 응용 프로그램을 작성하고 있습니다. 연결할 수 있고 모든 것이 메서드 호출과 같은 간단한 작업에 잘 작동합니다. 이제 문제는 이전 호출에서받은 객체의 속성에 액세스하려고하면 속성 getters가 호스트 프로세스 내부가 아니라 "클라이언트"측에서 실행된다는 것입니다..net Remoting - 호스트에서 Getter 실행
내부 getter 내 로컬 프로세스에서 Marshalling을 사용하고 있으므로 클라이언트 대신 호스트 프로세스에서 실행해야합니다.
내 질문에 : 내가 무엇을 하려는지를 달성하기위한 구체적인 방법이 있습니까? 아니면 호스트 측에서 공개 인터페이스에 추가 메서드를 작성하고 클래스를 구현해야합니까? 게터의 가치를 돌려 주시겠습니까?
내 코드는 다음과 같습니다 : 호스트 프로세스에 대한
MyApi api = new MyApi();
var channel = new IpcChannel(processId.ToString());
ChannelServices.RegisterChannel(channel, false);
RemotingConfiguration.CustomErrorsMode = CustomErrorsModes.On;
RemotingConfiguration.ApplicationName = "MyApi-Server" + processId;
RemotingServices.Marshal(api, "service");
.
가 그리고 이것은 클라이언트 측에게 도움