0

.NET Remoting を使用する必要があるクライアント/サーバー アプリケーションがあります (プロジェクトが Framework 2 を使用しているため、WCF ではありません)。

次のコード (MSDN から大量にコピー) が機能します。

                _clientChannel = new IpcClientChannel();

                ChannelServices.RegisterChannel(_clientChannel, false);

                IMyObject myObject= (IMyObject)
                        Activator.GetObject(typeof(IMyObject),
                        "ipc://MyServer/Address");

                if ( myObject.Equals(null) )
                    Console.WriteLine("Error: unable to locate server.");
                else
                    returnString = myObject.SomeMethod();

                ChannelServices.UnregisterChannel(_clientChannel);

しかし、これらの 3 行は何をするのでしょうか?

                    _clientChannel = new IpcClientChannel();

                    ChannelServices.RegisterChannel(_clientChannel, false);

                    ...

                    ChannelServices.UnregisterChannel(_clientChannel);

_clientChannel は、その後の作業コードのどこにも使用されません。作業コードは、これらの 3 行がなくても機能するようです。機能を失わずにそれらを取り除くことはできますか?

4

1 に答える 1

1

チャネルは通信に使用されます。アクティベーターを介して取得するオブジェクトは、実際の実装を非表示にし、通信にチャネルを使用するプロキシオブジェクトにすぎません。

リモーティングの詳細については、 MSDNを参照してください

于 2009-05-27T19:55:20.140 に答える