4

在 .NET Remoting 中,Activator.GetObject方法有一个状态参数。这个状态参数的目的是什么?我可以从服务器端检索它的值吗?

mdsn 没有太大帮助。

我想做的事:
客户端:
ChannelServices.RegisterChannel(new TcpChannel(0));
object obj = Activator.GetObject(typeof(MyObj), "tcp://serverName:1234/RemoteObj", "myCustomData");

服务器端:
访问“myCustomData”字符串。

4

1 回答 1

3

我不完全确定这个状态字段的目的是什么,但它似乎是一个通道特定的值,对您的代码没有用处。在 Reflector 中进行跟踪时Activator.GetObject,您会注意到它最终会传递给IChannelSender.CreateMessageSink. 该数据的使用是特定于实现的。

快速搜索发现只有一个实现者 if IChannelSender: CrossAppDomainChannel。在这个特定的实现中, state 参数仅在它是特定类型时使用:CrossAppDomainData. 这是一个内部类,您的程序无法访问,因此没有用处。

于 2009-10-27T14:42:23.393 回答