Оборачивание прокси-класса службы .NET WCF в блок USING {}? - PullRequest
1 голос
/ 21 сентября 2010

Быстрый вопрос, но лучше ли оборачивать прокси-класс службы в оператор использования? То есть в VS мы создали прокси для службы WCF. Для класса обслуживания, он должен быть включен в использование? Я не верю, что он реализует IDisposable и нет метода Dispose (). Спасибо.

1 Ответ

4 голосов
/ 21 сентября 2010

Несмотря на то, что прокси-серверы, сгенерированные Service Reference и svcutil.exe do , реализуют IDisposable, в общем случае не - лучший способ заключать их в блок using;вместо этого используйте явное открытие и закрытие.

Почему?Проблема в том, что метод Dispose вызывает Close, , который может выдавать при различных обстоятельствах, особенно если канал находится в состоянии Failed.В целом это плохо, но если это происходит во время блока finally, поскольку вы позволяете всплыть исключению сбоя, оно может поглотить исходное исключение сбоя в пользу исключения Close, фактически потеряв исходное исключение.

...