2009-10-27 2 views
3

.NET Remoting에서 Activator.GetObject 메서드는 상태 인 매개 변수를가집니다. 이 상태는 param의 목적은 무엇입니까? 서버 측에서 그 값을 검색 할 수 있습니까?Activator.GetObject - 상태 매개 변수 사용

mdsn이별로 도움이되지 않았습니다. 내가하고 싶은 무엇

:
클라이언트 측 :
ChannelServices.RegisterChannel(new TcpChannel(0));
object obj = Activator.GetObject(typeof(MyObj), "tcp://serverName:1234/RemoteObj", "myCustomData");

서버 측 :
하면 "myCustomData"문자열에 액세스 할 수 있습니다.

답변

2

이 상태 필드의 목적이 무엇인지는 모르겠지만 코드에 사용되지 않는 채널 특정 값인 것처럼 보입니다. Reflector에서 Activator.GetObject을 추적하면 결국 IChannelSender.CreateMessageSink으로 전달된다는 것을 알 수 있습니다. 이 데이터의 사용은 구현에 따라 다릅니다.

IChannelSender : CrossAppDomainChannel 인 경우 빠른 검색 결과가 하나만 나타납니다. 이 특정 구현에서 state 매개 변수는 특정 유형 인 경우에만 사용됩니다 (CrossAppDomainData). 이것은 프로그램에서 액세스 할 수없는 내부 클래스이므로 아무 쓸모가 없습니다.