WCF: Как остановить myServiceHost.Close() от удаления объекта myServiceHost?

По-видимому, Close и Dispose фактически одинаковы. Я хочу иметь возможность закрыть и открыть свой экземпляр ServiceHost, не переустанавливая его каждый раз. Есть идеи? Спасибо.

Ответ 1

ServiceHost.Close фактически идентичен Dispose(). Это верно, в общем, со всеми типами, которые имеют метод Close() - Dispose(), реализуется в терминах Close().

FYI - ServiceHostBase реализует Dispose() явно через:

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

Это эффективно означает, что когда вы закрываете ServiceHost, вы всегда будете Dispose(). Нет никакого поддерживаемого способа "повторно открыть" его, не воссоздавая его.