Search code examples
c#disposeidisposable

System.ServiceModel.ServiceHost implements IDisposable but Dispose is not public


Why is that?

This is not a question about the using keyword.


Solution

  • System.ServiceModel.ServiceHost implements the IDisposable interface explicitly. This prevents that interface complicating the the ServiceHost class itself. It also avoids situations where more than one interface implemented by a class defines a method with the same signature.

    The Dispose method can be accessed by casting the ServiceHost object to an IDisposable.

    Also helpful Q/A around it.