我正在努力遵守新项目的VS2005代码分析规则。我有这个方法:
public void Dispose()
{
Console.WriteLine("Dispose() called");
Dispose( true );
GC.SuppressFinalize(this);
}
(控制台调用将在某些时候成为log4net调用,我们总是对我们的某些类型的日志记录感兴趣。)
控制台调试行的存在会触发此错误:
错误1 CA1063:Microsoft.Design:修改PerfectDisposableClass.Dispose():Void以便调用Dispose(true),然后在当前对象实例上调用GC.SuppressFinalize('this'或'Me'in VB),然后返回。 F:\ Visual Studio 2005 \ Projects \ DisposeAndFinalize \ DisposeAndFinalize \ PerfectDisposableClass.cs 26 DisposeAndFinalize
如果没有诉诸pragma指令,有没有办法解决这个问题?也许写自己的规则?另外,我可以用反射器看一下装配中的现有规则吗?
答案 0 :(得分:3)
您可以将日志语句放在Dispose(bool disposing)方法中以遵守指南:
public void Dispose(bool disposing)
{
if (disposing)
{
Console.WriteLine("...");
}
...
}