0

オブジェクトはInnerchannel手動で廃棄されますか?

var client = new MyClient();
client.CallServer();
client.InnerChannel.Dispose()
client.Close()

またはこれで十分ですか?

var client = new MyClient();
client.CallServer();
client.Close()

BaseClient<T>クラスはIDisposableを実装しますが、明示的に実装します

例えば:void IDisposable.Dispose()

これは、クライアントを手動で呼び出すべきではないことを意味しますか?Dispose()

私は少し混乱しています-どんな助けでもありがたいです

4

1 に答える 1

0

InnerChannelクライアントを明示的に破棄する必要はありません。クライアントを呼び出すCloseと、クライアントが閉じて破棄InnerChannelされます。

Disposeクライアントを手動で呼び出すことができます。これCloseにより、クライアントのメソッドが呼び出されます。あなたがする必要がある唯一のことはあなたのクライアントをに割り当てることですIDisposable。そうしないと、クライアントで直接Disposeを呼び出すことができません。

または、usingステートメントでクライアントを使用できます

using (var client = new MyClient()) {
  client.CallServer();
}
于 2013-02-22T12:18:49.483 に答える