Activator.GetObject - Использование параметра состояния - PullRequest
3 голосов
/ 27 октября 2009

В .NET Remoting, Activator.GetObject метод имеет параметр состояние . Какова цель этого состояния параметра? Могу ли я получить его значение со стороны сервера?

МДСН мало чем помог.

Что бы я хотел сделать:
Клиентская сторона:
ChannelServices.RegisterChannel(new TcpChannel(0));
object obj = Activator.GetObject(typeof(MyObj), "tcp://serverName:1234/RemoteObj", "myCustomData");

Серверная часть:
Получите доступ к строке «myCustomData».

1 Ответ

2 голосов
/ 27 октября 2009

Я не совсем уверен, какова цель этого поля состояния, но, похоже, это значение для канала, которое не используется в вашем коде. При трассировке через Activator.GetObject в Reflector вы заметите, что в конечном итоге он передается в IChannelSender.CreateMessageSink. Использование этих данных зависит от конкретной реализации.

Быстрый поиск выявил только одного разработчика, если IChannelSender: CrossAppDomainChannel. В этой конкретной реализации параметр состояния используется только в том случае, если он имеет определенный тип: CrossAppDomainData. Это внутренний класс, который недоступен вашей программе и, следовательно, бесполезен.

...