我有一个 WCF 应用程序。
我了解最佳做法是将这些客户端代理对象与using语句或try/finally块一起使用,如下所示:
using(var proxy = MyChannelFactory.CreateChannel())
{
//do stuff here
}
或者
var proxy = MyChannelFactory.CreateChannel();
try
{
//do stuff here
}finally{
proxy.close();
}
我想知道的是......如果我把关闭通道的代码放在析构函数中,一旦代理对象超出范围,我是否可以依靠垃圾收集器调用析构函数代码,从而确保代理都被正确关闭了吗?