0

WCFを使用して、サーバーアプリとクライアントアプリの間に接続を作成しています。

を使用しているので、次の方法NetTcpBindingで作成されたチャネルを存続させたいと思います。

T proxy = ChannelFactory<T>.CreateChannel();

サーバーと通信するために、プロキシインスタンスをアプリに取り込みます。ある時点で、このプロキシを別のファクトリで更新します。しかし、私はそれを処分することによって、最初の工場から資源を解放したいと思います。しかし、私は工場を管理し、参照を維持したくありません。

プロキシインスタンスを使用してチャネルアソシエイトを取得して破棄する方法はありますか?

好き ...

var commObj = (ICommunicationObject)proxy;
commObj.Factory.Dispose();

ありがとう

4

1 に答える 1

1

残念ながら、チャネルとファクトリはリンクされていないため、それは不可能です。しかし、あなたのアプローチは正しくないと思います。ファクトリへの参照を保持し、必要に応じてチャネルを作成する必要があります。チャネルの再利用が問題になる場合があります。チャネルに障害が発生する可能性がありますが、内部ファクトリは引き続き有効です。ファクトリの作成には実際のコストがかかり、一部の.net 3.5 SP1のファクトリは、静的キャッシュに内部的に格納されます。

于 2012-09-12T18:47:34.127 に答える