.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 | 请勿将ConfigureWebHost与WebApplicationBuilder.Host一起使用 |
| ASP0009 | 请勿同时使用Configure和WebApplicationBuilder.WebHost |
| ASP0010 | 请勿将UseStartup与WebApplicationBuilder.WebHost一起使用 |
| ASP0011 | 使用builder.Logging优于Host.ConfigureLogging或WebHost.ConfigureLogging |
| ASP0012 | 建议使用builder.Services而不是Host.ConfigureServices或WebHost.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 |