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

mdsn 没有太大帮助。

我想做什么:
客户端:ChannelServices.RegisterChannel(new TcpChannel(0));object obj = Activator.GetObject(typeof(MyObj), "tcp://serverName:1234/RemoteObj", "myCustomData");
服务器端:
访问“myCustomData”字符串。

最佳答案

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

如果 IChannelSender : CrossAppDomainChannel ,则快速搜索仅显示一个实现者。在这个特定的实现中,状态参数仅在它是特定类型时才使用: CrossAppDomainData 。这是一个内部类,您的程序无法访问它,因此没有用。

关于.net - Activator.GetObject - 使用状态参数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1631044/

10-09 03:10