在我当前的生产代码中,根据msdn上的文档,创建客户端的方法是这样的
using (WebChannelFactory<IServiceInterface> cf
= new WebChannelFactory<IServiceInterface>("http://service.url"))
{
IServiceInterface client = cf.CreateChannel();
client.CallTheMethod();
}
鉴于我有这个界面:
public interface IServiceInterface
{
void CallTheMethod();
}
但是我注意到由 WebChannelFactory 创建的对象客户端也实现了 IDisposable。所以我也想处理这个对象。我没有找到任何其他方法:
using (WebChannelFactory<IServiceInterface> cf
= new WebChannelFactory<IServiceInterface>("http://service.url"))
using(IDisposable client = (IDisposable)cf.CreateChannel())
{
((IServiceInterface)client).CallTheMethod();
}
我觉得这很难看。所以 :
- 我真的需要处理它吗?我的意思是,它可能是在您处置工厂时处置的(如果工厂保留对它创建的每个对象的引用)?
- 如果是,你有更好的方法吗?