2009-11-24 4 views
1

기존 응용 프로그램에 대해 사용자 지정 원격 포매터 싱크를 작성했습니다. 포맷터는 CAO에 콜백을 전달하는 원격 메소드를 호출 할 때까지 대부분의 경우 작동합니다. 이 시점에서 나는 분명히 내가하고 싶은 것이 아닌 CAO를 직렬화하려고한다는 것을 나타내는 SerializationException을 얻는다. CAO는 MBRO로부터 상속 받고 객체 수명은이 단계에서 시작되지 않습니다..Net Remoting - 대리인의 serialization

누구든지 CAO에 대한 참조를 유지하는 방식으로 포맷터에서 들어오는 IMessage를 serialize 할 수있는 방법을 알고 있습니까? 나는 객체 그래프를 따라 가면서 CAO를 직렬화 할 수있는 ObjRef로 변환 할 필요가 있다고 가정하지만, serialize 할 구체적인 'Message'가 없기 때문에 내 문제가 더 근본적이다. 단지 IMessage 뿐이다. 리플렉션을 사용하지 않는 것이 좋습니다.

저는 WCF를 알고 있지만이 단계에서는 응용 프로그램이 상당히 많기 때문에 마이그레이션하지 않으려합니다.

답변

1

우수 논문이이며 answers을 제공 할 수 있습니다. 원격에서 이벤트/대리자를 구현하는 것은 매우 까다 롭고 해결 방법도 구현하기가 까다 롭습니다. 이 사이트를 읽는 가장 좋은 사이트는이 친구 인 Ingo Rammer이며 원격 작업에 관한 훌륭한 책을 저술하고 저술했습니다. 나는 과거의 GenuineChannels를 사용하여 표준 .NET Remoting에있는 이벤트 처리 제한 사용을 우회하고 작동합니다. 그러나 GenuineChannels은 이미 문제가있는 것 같습니다 ...

호프가 도움이 되길, , Tom.

+0

답변 해 주셔서 감사합니다. 그러나, 내 문제는 remoting 사용하지 않습니다. 오히려 하나 이상의 인수가 CAO에 대한 위임 (즉, 클라이언트에 대한 콜백) 인 원격 메소드 호출을 포함하는 IMessages를 직렬화 할 때 내 사용자 정의 포맷터 싱크 구현과 관련된 문제가 있습니다. 나는 Ingo의 책을 가지고 있으며 좋은 참고 자료이지만 내 질문에 대한 대답은 포함되어 있지 않습니다. – Roy