首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >实施IDisposable

实施IDisposable
EN

Stack Overflow用户
提问于 2014-05-13 22:02:26
回答 2查看 209关注 0票数 0

我有一个如下的类:

代码语言:javascript
复制
public class MyClass : IDisposable
{
   private WebServiceHost m_WebServiceHost;
   // Members
   public void Dispose()
   {
            m_WebServiceHost // how do I dispose this object?
   }
}

WebServiceHost实现了IDisposable,但它没有Dispose方法。

如何实现Dispose()

EN

回答 2

Stack Overflow用户

发布于 2014-05-13 22:06:36

考虑到它使用的是explicit interface implementation,我不清楚他们是否希望你这样做,但你可以:

代码语言:javascript
复制
public class MyClass : IDisposable
{
   private WebServiceHost m_WebServiceHost;
   // Members
   public void Dispose()
   {
            ((IDisposable)m_WebServiceHost).Dispose();
   }
}

我猜他们更喜欢你直接调用Close(),但我还不能从文档中证实这一点。

票数 3
EN

Stack Overflow用户

发布于 2014-05-13 22:07:34

如下所示:

代码语言:javascript
复制
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);
   }
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23633460

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档