是否有本地使用的IDisposable的FxCop规则?

时间:2010-02-06 20:30:48

标签: c# .net idisposable fxcop

...如果我在局部变量中使用IDisposable,但不要调用Dispose()或使用using()模式。

public void BadMethod()
{
    var fs = new FileStream("file.txt", FileMode.Create);
    fs.WriteByte(0x55);
    // no dispose, no using()
}

就像字段的"Types that own disposable fields should be disposable"规则一样。


编辑:由FileStream替换MemoryStream,因为MemoryStream只是分配内存而不使用(非托管)资源,所以某人可以讨论强制Dispose()调用。

1 个答案:

答案 0 :(得分:15)

这是否有FxCop规则?是的,没有。

在FxCop 1.35中,这是Visual Studio 2005 Code Analysis所基于的,有一个规则DisposeObjectsBeforeLosingScope就是这样做的。

在FxCop 1.36(Visual Studio 2008代码分析)中,他们删除了他们的数据流分析引擎,这意味着还必须删除此规则。

但是,在下一个FxCop( Visual Studio 2010 代码分析)中,DisposeObjectsBeforeLosingScope似乎已经返回了!