在 .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/