我很确定我要提出的问题是不可能的,但我希望代码分析方面的专家可以建议解决方法。
我正在尝试根据功能找到在GlobalSuppressions.cs
中排除代码分析警告的方法。例如,我想禁用
"Microsoft.Globalization", "CA1305:SpecifyIFormatProvider"
<***>在****我的日志记录中的所有****(我使用CommonLogging facade),所以签名就像这样:
Common.Logging.ILog.Trace(System.Action<Common.Logging.FormatMessageHandler>)
无论类型,命名空间或方法名称如何,我都想在整个项目中随处执行此操作....
答案 0 :(得分:0)
这确实不可能。当您调用同时具有接受string
的重载和接受string, IFormatProvider
的重载的方法时,将触发此规则。它可能应该,因为我希望你要么想要文化敏感的文件敏感文件或文化不敏感的日志文件。在这种情况下,代码分析会强制您做出选择。
您可以做的是编写自己的规则并禁用此规则。或者您可以修复违规行为并将其排除在外。快速正则表达式搜索+替换可能会在几秒钟内为您解决这些问题。
或者您可以在代码和Common.Logging之间编写一个充当代理/外观的类,它只接受string
变体。然后,您可以重构代码以使用您的方法。这样你只需要修复一个违规,它将保留在新创建的外观中。