#.net
#.net
Вопрос:
Почему HttpListener явно реализует IDisposable. Это означает, что вы должны привести к IDisposable перед вызовом dispose и, на мой взгляд, делает тот факт, что вы должны вызвать dispose, менее очевидным.
Ответ №1:
-
Вам не нужно явное приведение, если вы используете
using
блок. (Это предпочтительная идиома, где это возможно, для работы сIDisposable
объектами.)using (HttpListener hl = /* ... */) { // ... }
-
У него есть
Close
метод, который в значительной степени является псевдонимом дляDispose
. (Не мой любимый шаблон, но разработчикам фреймворка, похоже, он нравится!)HttpListener hl = /* ... */ try { // ... } finally { hl.Close(); }
Комментарии:
1. Возможно, проблема в использовании заключается в том, почему они явно реализовали интерфейс IDisposable. Я использую асинхронные методы, хотя поэтому сложно использовать маршрут using.