visual studio 2012 -基于功能的过滤规则



我很确定我要问的是不可能的,但我希望代码分析专家能够建议一个解决方法。

我正试图找到一种方法来排除基于功能的GlobalSuppressions.cs中的代码分析警告。例如,我想禁用

"Microsoft.Globalization", "CA1305:SpecifyIFormatProvider"

在****所有****的日志语句中(我使用CommonLogging facade),所以签名类似于:

Common.Logging.ILog.Trace(System.Action<Common.Logging.FormatMessageHandler>)

我想在整个项目的任何地方都这样做,无论类型,名称空间或方法名称....

看看其他的答案,这似乎是不可能的…是吗?

这是不可能的。当你调用一个方法同时有一个接受string和一个接受string, IFormatProvider的重载时,这个规则将被触发。也许应该这样,因为我希望您要么需要文化敏感日志文件,要么需要文化不敏感日志文件。在这种情况下,代码分析迫使您做出选择。

你能做的,是写你自己的规则并禁用这个。或者你可以纠正这些违规行为,把它们清除掉。一个快速的正则表达式搜索+替换可能会在几秒钟内为你修复这些问题。

或者您可以编写一个类,作为您的代码和Common代码之间的代理/Facade。它只接受string变体。然后,您可以重构代码以使用您的方法。这样您只需要修复一个冲突,它将保留在新创建的facade中。

相关内容

  • 没有找到相关文章

最新更新