Dapr 源代码分析器和生成器

用于常见 Dapr 问题的代码分析器和修复

Dapr 支持日益丰富的可选 Roslyn 分析器和代码修复提供程序,用于检查代码中的代码质量问题。从 v1.16 版本开始,开发者可以在每个标准功能包的基础上,从 NuGet 安装额外的项目,从而在解决方案中启用这些分析器。

规则违规通常标记为 InfoWarning,因此如果分析器发现问题,不一定会中断构建。所有代码分析违规都带有前缀 “DAPR”,并通过该前缀后的数字进行唯一区分。

安装和配置分析器

在 v1.16 Dapr 版本发布后,以下包将可通过 NuGet 获取:

  • Dapr.Actors.Analyzers
  • Dapr.Jobs.Analyzers
  • Dapr.Workflow.Analyzers

在您希望运行分析器的每个项目中安装每个 NuGet 包。该包将作为项目依赖项安装,分析器将在您编写代码时或作为 CI/CD 构建的一部分运行。分析器会标记现有代码中的问题,并在构建项目时警告您新出现的问题。

我们的许多分析器都有关联的代码修复,可以自动纠正问题。如果您的 IDE 支持此功能,任何可用的代码修复都将作为代码中的内联菜单选项显示。

此外,我们的大多数分析器还应该报告代码中被识别为规则关键方面的特定语法所在的行号和列号。如果您的 IDE 支持,双击任何分析器警告应该直接跳转到违反分析器规则的代码部分。

抑制特定分析器

如果您希望阻止分析器对项目的某个特定部分进行检查,可以通过多种方式单独抑制其输出。有关在项目或文件中抑制分析器的更多信息,请阅读相关的 .NET 文档

禁用所有分析器

如果您希望在不移除任何提供分析器的包的情况下禁用项目中的所有分析器,请在 csproj 文件中将 EnableNETAnalyzers 属性设置为 false

可用的分析器

诊断 IDDapr 包类别严重性添加版本描述可用代码修复
DAPR1301Dapr.WorkflowUsageWarning1.16工作流类型未向依赖注入提供程序注册Yes
DAPR1302Dapr.WorkflowUsageWarning1.16工作流活动类型未向依赖注入提供程序注册Yes
DAPR1401Dapr.ActorsUsageWarning1.16Actor 计时器方法调用要求在类型上存在指定的回调方法No
DAPR1402Dapr.ActorsUsageWarning1.16Actor 类型未向依赖注入注册Yes
DAPR1403Dapr.ActorsInteroperabilityInfo1.16将 options.UseJsonSerialization 设置为 true 以支持与非 .NET actor 的互操作性Yes
DAPR1404Dapr.ActorsUsageWarning1.16调用 app.MapActorsHandlers 以映射 Dapr actor 的端点Yes
DAPR1501Dapr.JobsUsageWarning1.16Job 调用要求为 IEndpointRouteBuilder 上每个预期的作业设置和配置 MapDaprScheduledJobHandlerNo

分析器类别

以下是分析器可以分配到的各个有效类别,这些类别是按照 .NET 分析器使用的标准类别建模的:

  • Design
  • Documentation
  • Globalization
  • Interoperability
  • Maintainability
  • Naming
  • Performance
  • Reliability
  • Security
  • Usage