我希望重写生成的代理(ClientBase
)的Dispose方法,因为释放代理会调用Close并且当通道出现故障时可能会抛出异常。
我想到的唯一方法是创建一个部分类来继承IDisposable
:
public partial class MyServiceProxy : IDisposable
{
#region IDisposable Members
public void Dispose()
{
if (State != System.ServiceModel.CommunicationState.Faulted)
Close();
else
Abort();
}
#endregion
}
我进行了一些测试,我的Dispose
方法确实被调用了。
您认为这种策略有什么问题吗?
此外,我不喜欢我必须为每个生成的代理创建这个局部类。
如果能够让我的代理继承自一个基类就好了...