UserControls中的FxCop CA2000警告

时间:2010-06-10 23:27:05

标签: .net fxcop servercontrols

在包含UserControl的WebProject上运行FxCop将导致该UserControl中每个ServerControl(Label,TextBox,...)的CA2000警告(对象上调用System.IDisposable.Dispose)。

我理解为什么会这样。
用PlaceHolder替换'违规'ServerControls,然后在代码中添加控件(使用...结束使用)可能是一种方法,但它并不总是一个选项。
但是,如果他们不是'犹太教'为什么ServerControls你可以放在你的ascx / aspx中呢?我错过了什么?

如果在我的情况下,你继承了一个相当复杂的UserControls的大量集合,我现在是否将每个“违规”控件添加到GlobalSupperssions文件中(这很麻烦,麻烦点击右键)?
我不希望抑制所有CA2000警告,因为修复它们非常有意义,但不是UserControls中的ServerControls。

1 个答案:

答案 0 :(得分:0)

Hmya,每个人真的喜欢一种能告诉他们忘记调用Dispose()的工具。问题是:这样的工具真的很难实现。您正在谈论的具体警告已被禁用并重新启用了几次。

显然你得到的警告是无稽之谈,UserControl已经知道如何正确处理其成员控件。这不是自动化工具可以轻易检测到的东西。 dispose调用是从构造函数调用中移除的一百万英里,埋藏在.NET框架代码中,其中包含一些虚拟方法和事件处理程序。

真的评估这些警告,你必须切换到另一个工具:你耳朵之间的那个。