Сведения о вопросе

Kirushaa

23:47, 6th August, 2020

Теги

wcf   web-services    

Закрытие и утилизация обслуживание WCF

Просмотров: 455   Ответов: 2

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



  Сведения об ответе

davran

16:00, 13th August, 2020

Похоже, что это общий шаблон дизайна в коде .NET. Вот цитата из руководства по разработке фреймворка

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

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


  Сведения об ответе

JUST___

03:09, 21st August, 2020

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


Ответить на вопрос

Чтобы ответить на вопрос вам нужно войти в систему или зарегистрироваться