1

我经常在多个解决方案的多个 EF Core 项目中工作。每当我保存时,到处都看到IDE0058 分析提示DbContext变得非常令人沮丧:

IDE0058 警告

据我所知,抑制这种违反代码风格的行为需要修改至少一个文件:

  • 为每次调用添加一个本地丢弃database.SaveChangesAsync(看起来很糟糕)
  • 基于每个方法添加System.Diagnostics.CodeAnalysis.SuppressMessage注释(同样不理想)
  • GlobalSuppressions.cs文件添加到解决方案中的每个项目(也确实不理想)
  • 向每个项目添加一个.editorconfig文件以配置此违规。我使用的所有项目都没有使用 editorconfig 文件。

出于代码审查的原因,每当我处理不同的项目时,我不能像这样继续添加不相关的文件/更改。

让我感动的是,我发誓这是最近的一个问题。到目前为止,我一直在 EF Core 中工作多年,这不是问题。

除此之外,一位 Roslyn 团队成员在 GitHub 上评论说它“没有 UI 影响”并且“默认隐藏”(显然不是这里的情况)。正如链接评论所暗示的那样,似乎也没有办法将其“重置”为默认值。

无论如何,在我从事的每个项目和解决方案中,是否有办法一劳永逸地制止这种违规行为?

4

1 回答 1

0

是的,您可以创建一个全局Analyzers.ruleset文件并添加您希望忽略的规则 ID。

.csproj每个项目的文件中,您必须在PropertyGroup部分中添加<CodeAnalysisRuleSet>并指定ruleset文件的路径。

ruleset文件是一个XML文件,这是您可以执行的操作的示例:

<?xml version="1.0" encoding="utf-8"?>
<RuleSet Name="Rules for Core Application" Description="Custom Rules" ToolsVersion="16.0">
  <Rules AnalyzerId="Microsoft.CodeAnalysis.CSharp.Features" RuleNamespace="Microsoft.CodeAnalysis.CSharp.Features">
    <Rule Id="IDE0058" Action="None" />
  </Rules>
</RuleSet>

这是文件的外观:

在此处输入图像描述

如果它是警告/消息/错误/隐藏/信息/无,您可以决定每个。

更新

另一种方法是添加一个.editorconfig文件并忽略那里的警告。

dotnet_style_readonly_field = false:none
于 2021-09-07T23:28:24.563 回答