【问题标题】:Suppress CA1303 fxcop warning when constructing a new Exception构造新异常时抑制 CA1303 fxcop 警告
【发布时间】:2020-04-26 02:32:35
【问题描述】:

当我在 ASP.NET Core 3.1 代码中引发异常时,当 fxcop 将字符串文字视为 new Exception() 的参数时会发出警告。例如:

throw new InvalidOperationException("Ouch");

给我CA1303: Do not pass literals as localized parameters

作为一般规则,我不会向最终用户显示异常消息,因此我不想对它们进行本地化。有没有办法配置 CA1303,使其忽略从 System.Exception 派生的任何构造函数参数?

编辑:

经过一番搜索,我找到了关于这个问题的对话:

https://github.com/dotnet/roslyn-analyzers/issues/2933

【问题讨论】:

    标签: c# asp.net-core fxcop


    【解决方案1】:

    如果您使用 .editor 配置,您可以这样做:dotnet_code_quality.CA1303.use_naming_heuristic = true 或者完全禁用 CA1303。

    【讨论】:

    • 去过那里,试过了,不行。可能与.editorconfig代码编辑器抱怨The keyword "dotnet_code_quality.CA1303.use_naming_heuristic" is unknown有关。
    • 您可以将以下内容添加到您的 csproj:<NoWarn>CA1303</NoWarn>
    【解决方案2】:

    Microsoft.CodeAnalysis.FxCopAnalyzers 的 3.3.0 版终于修复了在调用特定类型时抑制警告的能力。

    为了在构造Exception或调用ILogger函数时抑制CA1303,我在我的解决方案的根目录中添加了一个.editorconfig文件(所有项目都是该目录的子目录)并添加这些行:

    [*.cs]
    dotnet_code_quality.CA1303.excluded_type_names_with_derived_types = Exception|LoggerExtensions|ILogger
    

    这告诉 CA1303 忽略对 ExceptionLoggerExtensionsILogger(以及从这些类型派生的任何类型)的调用。

    参考请看本期及下方回复:
    https://github.com/dotnet/roslyn-analyzers/issues/2933#issuecomment-627256340

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-03-16
      • 1970-01-01
      • 1970-01-01
      • 2011-09-06
      • 2011-04-01
      • 1970-01-01
      相关资源
      最近更新 更多