.NETリモート処理で_types_の代わりにオブジェクト_instances_を登録しますか?
質問
.NETリモーティングについて、私が理解していないことがあります。さて、実際には2つのこと:
-
インターフェイスではなく、MarshalByRefを継承するクラスに重点が置かれているのはなぜですか(元々のCOMスタイル)(
-
.NETリモート処理により、特定のインスタンスをURLに関連付けるのではなく、何らかの種類のオブジェクトプールを常に効果的に作成する必要があるのはなぜですか?
サーバーコード:
RemotingConfiguration.RegisterWellKnownServiceType(typeof(RemotingTypes.Server), "MyURL", WellKnownObjectMode.Singleton);
クライアントコード:
RemotingTypes.Server myInstance = new RemotingTypes.Server();
しかし、「サーバー」を作成したいとします;自分でインスタンス化してからエンドポイントにバインドするだけですか?
<*>今何? 「myInstance」を関連付けるにはどうすればよいですか。 &quot; MyURL&quot;というURL
解決
Nickdの答えの問題:これを行うために.NETリモーティングを取得する方法ではなく、既に作成されたインスタンスをURLに関連付ける方法を知りたかった(私が作成したデフォルトのないインスタンス例えば、コンストラクター。
「哲学」を説明する壮大な反応があることを望んでいました。 .NETリモーティングの背後にあり、なぜそれが型システムと密接に結びついているのか...
代わりに私が結論付けたのは、単にそれです: a).NETリモート処理がひどいためです。使わないで b)代わりに WCF を代わりに使用
>他のヒント
COMの経験がなく、2を理解していないため、ポイント1と2に実際に対処することはできませんが、system.Activatorクラスを使用している場合、特定の最終的な質問に答えるために、これを行うことができます:
RemotingTypes.Server myInstance = (RemotingTypes.Server) Activator.GetObject(typeof(RemotingTypes.Server), MyUrl);
これは、構築時にバインドする必要があることを意味しますが、すべてクライアント側です。