The class RabbitMQ.Client.MessagePatterns.SimpleRpcServer implements IDisposable using an explicit interface implementation. The implementation is:
void IDisposable.Dispose()
{
Close();
}
That means that in order to call Dispose() on such a object, I first have to cast it to IDisposable. Why is the Dispose method declared in this way? Should I bother to call Dispose() on a SimpleRpcServer object? I could forget it and simply call Close(), I'm just asking because FxCop gave me a warning about it and I don't think I've seen explicit interface implementations before.
usingstatement you shouldn't need to cast it. Looking at the code, it was not done for naming conflict reasons. So my guess isDisposeis not important on this type or they are encouraging you to useusing.