Activator.GetObject-状態パラメーターの使用
-
06-07-2019 - |
質問
.NET Remotingでは、 Activator.GetObject メソッドには state パラメーターがあります。この state パラメータの目的は何ですか?サーバー側からその値を取得できますか?
mdsnはあまり役に立ちませんでした。
やりたいこと:
クライアント側:
ChannelServices.RegisterChannel(new TcpChannel(0));
object obj = Activator.GetObject(typeof(MyObj)、" tcp:// serverName:1234 / RemoteObj&quot ;," myCustomData");
サーバー側:
" myCustomData"へのアクセスを取得します文字列。
解決
この状態フィールドの目的が何であるかは完全にはわかりませんが、コードには役に立たないチャネル固有の値のようです。 Reflectorの Activator.GetObject
をトレースすると、最終的に IChannelSender.CreateMessageSink
に渡されることがわかります。このデータの使用は実装固有です。
クイック検索では、 IChannelSender
: CrossAppDomainChannel
の場合、実装者は1人だけでした。この特定の実装では、stateパラメーターは、特定のタイプの場合のみ使用されます: CrossAppDomainData
。これは、プログラムからアクセスできない内部クラスであるため、使用できません。
所属していません StackOverflow