我有一个如下的类:
public class MyClass : IDisposable
{
private WebServiceHost m_WebServiceHost;
// Members
public void Dispose()
{
m_WebServiceHost // how do I dispose this object?
}
}WebServiceHost实现了IDisposable,但它没有Dispose方法。
如何实现Dispose()
发布于 2014-05-13 22:06:36
考虑到它使用的是explicit interface implementation,我不清楚他们是否希望你这样做,但你可以:
public class MyClass : IDisposable
{
private WebServiceHost m_WebServiceHost;
// Members
public void Dispose()
{
((IDisposable)m_WebServiceHost).Dispose();
}
}我猜他们更喜欢你直接调用Close(),但我还不能从文档中证实这一点。
发布于 2014-05-13 22:07:34
如下所示:
public class MyClass : IDisposable
{
private WebServiceHost m_WebServiceHost;
// Often you have to override Dispose method
protected virtual void Dispose(Boolean disposing) {
if (disposing) {
// It looks that WebServiceHost implements IDisposable explicitly
IDisposable disp = m_WebServiceHost as IDisposable;
if (!Object.RefrenceEquals(null, disp))
disp.Dispose();
// May be useful when debugging
disp = null;
}
}
// Members
public void Dispose()
{
Dispose(true);
GC.SuppressFinalize(this);
}
}https://stackoverflow.com/questions/23633460
复制相似问题