0

私は次のクラスを持っています:

public class MyClass : IDisposable
{
   private WebServiceHost m_WebServiceHost;
   // Members
   public void Dispose()
   {
            m_WebServiceHost // how do I dispose this object?
   }
}

WebServiceHostを実装IDisposableしていますが、メソッドはありませんDispose

実装方法を教えてくださいDispose()

4

2 に答える 2

3

明示的なインターフェイスの実装を使用していることを考えると、彼らがあなたに望んでいることは私には明らかではありませんが、次のことができます。

public class MyClass : IDisposable
{
   private WebServiceHost m_WebServiceHost;
   // Members
   public void Dispose()
   {
            ((IDisposable)m_WebServiceHost).Dispose();
   }
}

彼らはあなたに電話してほしいと思っていると思いますClose()私はまだ文書からそれを裏付けることができません.

于 2014-05-13T14:06:36.400 に答える
2

次のようにします。

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);
   }
}
于 2014-05-13T14:07:34.253 に答える