Закрытие и удаление службы WCF

CloseМетод на ICommunicationObjectможет бросить двух типов исключений в MSDN описаны здесь . Я понимаю, почему Closeметод может генерировать эти исключения, но я не понимаю, почему Disposeметод на прокси-сервере службы вызывает Closeметод без tryнего. Разве ваш Disposeметод не является единственным местом, где вы хотите убедиться, что не выбрасываете исключения?

23.08.2008 02:29:18
2 ОТВЕТА
РЕШЕНИЕ

Кажется, это общий шаблон проектирования в .NET-коде. Вот цитата из руководящих принципов проектирования Framework

Рассмотрите возможность предоставления метода Close () в дополнение к Dispose (), если close является стандартной терминологией в области. При этом важно сделать реализацию Close идентичной Dispose ...

Вот сообщение в блоге, в котором вы можете найти обходной путь для этой проблемы проектирования System.ServiceModel.ClientBase

9
23.08.2008 16:19:56
код с использованием WCF Proxy Generator в VS 2008, когда я добавляю Service Reference, является плохим кодом, потому что не является хорошей практикой для удаления (закрытия)?
Kiquenet 8.11.2010 09:49:20

Да, обычно Dispose - это одно из мест, где вы хотите, чтобы исключения не создавались. Однако на основе этой ветки форума MSDN были некоторые исторические причины такого поведения. Таким образом, рекомендуемый шаблон - это парадигма try {Close} / catch {Abort}.

9
31.08.2008 02:05:27