ASP.NET Core 应用中的诊断代码分析

.NET 编译器平台分析器会检查应用程序代码的代码质量和样式问题。

本文提供了指向 ASP.NET Core 的特定诊断消息的链接。 有关 .NET 诊断的详细信息,请参阅 .NET 源代码分析概述

诊断代码

下表列出了可用于 ASP.NET Core 应用程序的诊断。

注释

并非所有诊断在较旧版本的 ASP.NET Core 中都可用。

诊断标识符 Message
ASP0000 不要在ConfigureServices中拨打IServiceCollection.BuildServiceProvider
ASP0001 授权中间件配置不正确
ASP0003 不要将模型绑定属性与路由处理程序配合使用
ASP0004 不要在路由处理程序中使用操作结果
ASP0005 不要在路由处理程序 lambda 调用的方法上放置属性
ASP0006 不要使用非字面序列号
ASP0007 路由参数和参数可选性不匹配
ASP0008 请勿将ConfigureWebHostWebApplicationBuilder.Host一起使用
ASP0009 请勿同时使用ConfigureWebApplicationBuilder.WebHost
ASP0010 请勿将UseStartupWebApplicationBuilder.WebHost一起使用
ASP0011 使用builder.Logging优于Host.ConfigureLoggingWebHost.ConfigureLogging
ASP0012 建议使用builder.Services而不是Host.ConfigureServicesWebHost.ConfigureServices
ASP0013 建议从使用 Configure 方法切换到 WebApplicationBuilder.Configuration
ASP0014 建议使用顶级路由注册
ASP0015 建议使用 IHeaderDictionary 属性
ASP0016 不要从 RequestDelegate 中返回值。
ASP0017 无效的路由模式
ASP0018 未使用的路由参数
ASP0019 建议使用 IHeaderDictionary.Append 或索引器
ASP0020 路由参数引用的复杂类型必须是可分析的
ASP0021 方法的 BindAsync 返回类型必须是 ValueTask<T>
ASP0022 路由处理程序之间检测到的路由冲突(最小 API 应用
ASP0023 检测到路由处理程序之间的路由冲突
ASP0024 路由处理程序具有包含 [FromBody] 属性的多个参数
ASP0025 使用 AddAuthorizationBuilder 注册授权服务并构建策略
ASP0026 [Authorize] 被继承层级较高的 [AllowAnonymous] 覆盖
ASP0027 不必要的 public Program 类声明
ASP0028 请考虑使用 IPAddress.IPv6Any 而不是 IPAddress.Any
BL0001 组件参数应具有公共 setter
BL0002 组件具有多个 CaptureUnmatchedValues 参数
BL0003 具有 CaptureUnmatchedValues 错误类型的组件参数
BL0004 组件参数应为公共参数
BL0005 组件参数不应在其组件外部设置
BL0006 请勿使用 RenderTree 类型
BL0007 组件参数 {0} 应为自动属性
BL0008 组件参数应为自动属性
MVC1000 IHtmlHelper.Partial应避免使用
MVC1001 筛选器不能应用于页面处理程序方法
MVC1002 无法将路由属性应用于页面处理程序方法
MVC1003 无法将路由属性应用于页面模型
MVC1004 重命名模型绑定参数
MVC1005 不能与终结点路由一起使用UseMvc
MVC1006 包含标记帮助程序(TagHelpers) 的方法必须是异步方法并返回 Task