質問

.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 。これは、プログラムからアクセスできない内部クラスであるため、使用できません。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top