WCF クライアントはUsingブロック内で使うことはできない、なぜなら予期しない例外が投げられる可能性があるからだ。たとえ例外をキャッチしたとしても、接続が開きっぱなしになることもある。この問題に関するこれまでの経緯と提案されているいくつかの回避策をこれから見ていこう。 .NET におけるリソース管理の要になるのはIDisposableとUsingブロックだ。CLRオブジェクトは別として、.NET世界における全てのオブジェクトのライフスパンはこれらを用いて管理される。だからこそ疑問に思うのも当然のことだ。どうやってMicrosoftはWCFフレームワークについてこんなにお粗末な問題を起こすことができたのだろうか、と。 WCF クライアントの問題としてまず挙げられるのがClose/Disposeメソッドが例外を投げうることだ。このことでFinallyブロックから Disposeメソッドを呼