2014-09-02 3 views

ответ

3

JsonServiceClient осуществляет IDisposable, поэтому наилучшей практикой было бы использовать его с оператором using.

Однако существуют сценарии, в котором вы должны доля экземпляр JsonServiceClient по нескольким запросам (например, когда вы используете куки основе сессий, так как куки содержатся в случаях печенья контейнера), в этом случае вам будет использовать клиент без инструкции using, но убедитесь, что ваше приложение вызывает метод клиента Dispose, когда он больше не требует клиента.

This answer автор gdoron далее объясняет наилучшую практику в отношении классов, которые реализуют IDisposable, таких как JsonServiceClient и обоснования позади него.

Как правило, когда вы используете объект IDisposable, вы должны объявить его и создать его в операторе using. Оператор using вызывает метод Dispose на объекте правильным образом и (когда вы используете его, как показано выше), он также приводит к тому, что сам объект выходит из области действия, как только вызывается Dispose. Внутри используемого блока объект доступен только для чтения и не может быть изменен или переназначен.

Оператор using гарантирует, что Dispose вызывается, даже если возникает исключение, когда вы вызываете методы на объекте. Вы можете добиться того же результата, поставив объект внутри блока try и затем вызывая Dispose в блоке finally; Фактически, это то, как оператор using преобразуется компилятором. Пример кода ранее расширяется до следующего кода во время компиляции (обратите внимание на дополнительные фигурные скобки для создания ограниченного пространства для объекта):

Я надеюсь, что это поможет.

Смежные вопросы