WCF: How to stop myServiceHost.Close() from dispos

2019-06-16 01:26发布

问题:

Apparently Close and Dispose are effectively the same. I want to be able to Close and Open my ServiceHost instance without having to reinstantiate it everytime. Any ideas? Thanks.

回答1:

ServiceHost.Close is effectively identical to Dispose(). This is true, in general, with all types that have a Close() method - Dispose() is implemented in terms of Close().

FYI - ServiceHostBase implements Dispose() explicitly via:

void IDisposable.Dispose()
{
    base.Close();
}

This, effectively, means that when you close the ServiceHost, you'll always Dispose() of it. There is no supported way to "reopen" it without recreating it.