在.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 。这是一个内部类,您的程序无法访问它,因此没有用。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top