Activator.GetObject - 使用state参数
-
06-07-2019 - |
题
在.NET Remoting中, Activator.GetObject 方法具有 state 参数。这个州 param的目的是什么?我可以从服务器端检索它的值吗?
mdsn并没多大帮助。我想做什么:
客户端:
ChannelServices.RegisterChannel(new TcpChannel(0));
object obj = Activator.GetObject(typeof(MyObj)," tcp:// serverName:1234 / RemoteObj"," myCustomData");
服务器端:
获取对“myCustomData”的访问权限。字符串。
解决方案
我不完全确定此状态字段的用途是什么,但它似乎是一个特定于通道的值,对您的代码没用。在跟踪Reflector中的 Activator.GetObject
时,您会注意到它最终会传递给 IChannelSender.CreateMessageSink
。此数据的使用是特定于实现的。
如果 IChannelSender
: CrossAppDomainChannel
,快速搜索只显示一个实现者。在此特定实现中,仅在具有特定类型的情况下才使用state参数: CrossAppDomainData
。这是一个内部类,您的程序无法访问它,因此没有用。
不隶属于 StackOverflow