我正在尝试遵守新项目的 VS2005 代码分析规则。我有这个方法:
public void Dispose()
{
Console.WriteLine("Dispose() called");
Dispose( true );
GC.SuppressFinalize(this);
}
(控制台调用将在某个时候变成 log4net 调用,我们总是对记录某些类型的 dispose 感兴趣)。
控制台调试行的存在会触发此错误:
错误 1 CA1063:Microsoft.Design:修改 PerfectDisposableClass.Dispose():Void 使其调用 Dispose(true),然后在当前对象实例(VB 中的“this”或“Me”)上调用 GC.SuppressFinalize,然后返回. F:\Visual Studio 2005\Projects\DisposeAndFinalize\DisposeAndFinalize\PerfectDisposableClass.cs 26 DisposeAndFinalize
如果不求助于 pragma 指令,有没有办法解决这个问题?也许写我自己的规则?另外,我可以用反射器查看组件中的现有规则吗?