Я использую некоторые объекты XmlReader
и XmlWriter
для выполнения необходимой работы со строками внутри некоторых блоков try...catch
.
Я знаю, что использование обозначения using (XmlReader NewReader = XmlReader.Create(...))
является предпочтительным синтаксисом, но мне это не очень нравится, поэтому я также добавляю finally
блоки и выполняю NewReader.Close();
и NewWriter.Close();
.
Однако анализ кода жалуется на то, что эти объекты не удаляются, что вынуждает меня каким-то образом вызывать метод Dispose()
.
Проблема в том, что в этих классах метод Dispose()
реализован явно, поэтому я должен использовать ((IDisposable)(NewReader)).Dispose();
и ((IDisposable)(NewWriter)).Dispose();
.
Есть ли недостатки этой техники?