我正在使用一些XmlReader
和XmlWriter
对象来对某些try...catch
块内的字符串做一些必要的工作。显式转换为IDisposable
我知道,使用符号using (XmlReader NewReader = XmlReader.Create(...))
是首选语法,但我真的不喜欢那个,所以我也追加finally
块和执行NewReader.Close();
和NewWriter.Close();
。
但是,代码分析抱怨说这些对象没有被处置,因此迫使我以某种方式调用Dispose()
方法。
问题是,在这些类中Dispose()
方法是明确实施的,所以我必须使用((IDisposable)(NewReader)).Dispose();
和((IDisposable)(NewWriter)).Dispose();
。
这种技术有什么缺点吗?
为什么你不想使用using语句。它做你需要做的一切,你不会得到fxcop警告*,*它比使用try-finally更简洁。 – s1mm0t