JetBrains Rider 2025.2 Help

解决方案范围的代码检查

大多数 JetBrains Rider 的 代码检查 仅需要单个文件的源代码即可检测代码问题。 除了这些检查之外,JetBrains Rider 还提供了解决方案范围的检查,用于检测仅在整个解决方案范围内可检测的代码问题。例如,要检测未使用的非私有成员,JetBrains Rider 需要分析整个解决方案。

要使解决方案范围的检查生效,您需要启用以下至少一项功能:

  • 简化的全局使用检查:在 JetBrains Rider 设置 的 编辑器 | 检查设置 页面上选择 在关闭全局范围分析时显示未使用的非私有类型成员 Ctrl+Alt+S

  • 解决方案范围分析 :在 JetBrains Rider 设置 的 编辑器 | 检查设置 页面上选择 启用解决方案级分析(_A) Ctrl+Alt+S

请注意,即使报告的符号在您的解决方案中没有直接使用,也可能存在间接使用的情况——例如,通过反射——或者它可能只是被设计为公共 API。 在所有这些情况下,您可能希望通过以下方式之一 抑制符号的使用检查:

  • 推荐的方法是使用 代码注解属性装饰隐式使用的符号。 为此目的有两个属性: [UsedImplicitly][PublicAPI] ,它们在功能上相似,但可以让您和您的团队了解符号的实际使用方式。

  • 您还可以使用任何自定义属性来抑制使用检查。 为此,请使用 [MeansImplicitUse]属性标记该属性的定义。

  • 最后,您可以像处理任何其他代码检查一样,通过 抑制注释或抑制属性来抑制特定的使用检查。

与任何其他检查类似,您还可以 禁用更改严重性级别 的任何解决方案范围检查。 这可以直接在检查突出显示的代码问题的 Alt+Enter 菜单中完成。 或者,您可以在 JetBrains Rider 设置 的 编辑器 | 检查严重性 页面上禁用/启用检查或更改严重性级别 Ctrl+Alt+S——解决方案范围检查带有 非私有可访问性 标签标记。 请注意,您无法为解决方案范围的检查设置“错误”严重性。

当启用解决方案范围分析时,解决方案范围检查检测到的问题会在打开的文件中以与其他问题相同的方式 高亮显示 ,并且当您 在特定范围内运行代码检查 时,它们也会出现在 问题窗口 中。 然而,它们不会出现在 所有解决方案文件 标签的 问题工具窗口 Alt+6 中。

如果需要,您可以禁用解决方案范围的检查,或者仅对 特定项目 的内部符号启用解决方案范围的检查。 为此,请在项目属性对话框的 检查 页面上使用 解决方案级检查 选择器(右键单击项目并选择 属性)。

请注意,无论此选择器中的值如何,如果在 JetBrains Rider 选项中禁用了解决方案范围分析,则解决方案范围的检查将被禁用。

JetBrains Rider 提供以下解决方案范围的检查:

检查

语言

默认严重性

自动属性可以设为仅 get(非私有可访问性)

C#

建议

类可以设为密封(不可继承)(非私有可访问性)

C#

已禁用

将局部变量或字段转换为常量(非私有可访问性)

C#

提示

字段可以设为只读(非私有可访问性)

C#

建议

成员可以设为私有(非私有可访问性)

C#

建议

成员可以设为受保护(非私有可访问性)

C#

建议

成员可以设为静态(共享)(非私有可访问性)

C#

提示

参数类型可以为 IEnumerable<T>(非私有可访问性)

C#

已禁用

属性可以设为仅 init(非私有可访问性)

C#

建议

返回类型可以为 IEnumerable<T>(非私有可访问性)

C#

已禁用

结构体缺少 'IEquatable' 实现(非私有可访问性)

C#

警告

使用默认相等成员的结构体用于比较(非私有可访问性)

C#

警告

在记录中使用了具有可疑相等性的类型(非私有可访问性)

C#

警告

引入可选参数(非私有可访问性)

C#

建议

抽象或虚拟(可重写)事件从未被调用

C#

建议

自动属性访问器从未被使用(非私有可访问性)

C#

警告

类从未被实例化(非私有可访问性)

C#

建议

集合内容从未被查询(非私有可访问性)

C#

警告

集合从未被更新(非私有可访问性)

C#

警告

CQRS 上下文交叉。 从 Query 上下文中调用了 Command。 (在声明中显示)

C#

警告

CQRS 上下文交叉。 从 Query 上下文中调用了 Command。 (在用法中显示)

C#

警告

CQRS 上下文交叉。 从 Command 上下文中调用了 Query。 (在声明中显示)

C#

警告

CQRS 上下文交叉。 从 Command 上下文中调用了 Query。 (在用法中显示)

C#

警告

事件从未被订阅(非私有可访问性)

C#

建议

该方法从两个 CQRS 上下文中都被调用(在声明中显示)

C#

警告

该方法从两个 CQRS 上下文中都被调用(在用法中显示)

C#

警告

未访问的字段(非私有可访问性)

C#

建议

未访问的位置属性(非私有可访问性)

C#

警告

可疑的类型转换或检查

C#

警告

未分配的字段(非私有可访问性)

C#

建议

冗余的全局 using 指令

C#

警告

具有虚拟(可重写)成员的类从未被继承(非私有可访问性)

C#

建议

实体仅用于捕获其名称(非私有可访问性)

C#

警告

方法返回值从未被使用(非私有可访问性)

C#

建议

参数仅用于前置条件检查(非私有可访问性)

C#

建议

参数输出值始终被丢弃(非私有可访问性)

C#

建议

冗余的方法重载(非私有可访问性)

C#

建议

类型从未被使用(非私有可访问性)

C#

建议

类型成员从未通过基类型访问(非私有可访问性)

C#

建议

类型成员从未被使用(非私有可访问性)

C#

建议

类型成员仅在重写中使用(非私有可访问性)

C#

建议

未使用的参数(非私有可访问性)

C#

建议

虚拟(可重写)成员从未被重写(非私有可访问性)

C#

建议

自动属性可以设为仅 get(非私有可访问性)

VB.NET

建议

类可以设为密封(不可继承)(非私有可访问性)

VB.NET

已禁用

将局部变量或字段转换为常量(非私有可访问性)

VB.NET

提示

字段可以设为只读(非私有可访问性)

VB.NET

建议

成员可以设为私有(非私有可访问性)

VB.NET

建议

成员可以设为受保护(非私有可访问性)

VB.NET

建议

成员可以设为静态(共享)(非私有可访问性)

VB.NET

提示

参数类型可以为 IEnumerable<T>(非私有可访问性)

VB.NET

已禁用

属性可以设为仅 init(非私有可访问性)

VB.NET

建议

返回类型可以为 IEnumerable<T>(非私有可访问性)

VB.NET

已禁用

结构体缺少 'IEquatable' 实现(非私有可访问性)

VB.NET

警告

使用默认相等成员的结构体用于比较(非私有可访问性)

VB.NET

警告

在记录中使用了具有可疑相等性的类型(非私有可访问性)

VB.NET

警告

抽象或虚拟(可重写)事件从未被调用

VB.NET

建议

自动属性访问器从未被使用(非私有可访问性)

VB.NET

警告

类从未被实例化(非私有可访问性)

VB.NET

建议

集合内容从未被查询(非私有可访问性)

VB.NET

警告

集合从未被更新(非私有可访问性)

VB.NET

警告

事件从未被订阅(非私有可访问性)

VB.NET

建议

未访问的字段(非私有可访问性)

VB.NET

建议

未访问的位置属性(非私有可访问性)

VB.NET

警告

可疑的类型转换或检查

VB.NET

警告

未分配的字段(非私有可访问性)

VB.NET

建议

具有虚拟(可重写)成员的类从未被继承(非私有可访问性)

VB.NET

建议

实体仅用于捕获其名称(非私有可访问性)

VB.NET

警告

方法返回值从未被使用(非私有可访问性)

VB.NET

建议

参数仅用于前置条件检查(非私有可访问性)

VB.NET

建议

参数输出值始终被丢弃(非私有可访问性)

VB.NET

建议

类型从未被使用(非私有可访问性)

VB.NET

建议

类型成员从未通过基类型访问(非私有可访问性)

VB.NET

建议

类型成员从未被使用(非私有可访问性)

VB.NET

建议

类型成员仅在重写中使用(非私有可访问性)

VB.NET

建议

未使用的参数(非私有可访问性)

VB.NET

建议

虚拟(可重写)成员从未被重写(非私有可访问性)

VB.NET

建议

类型从未被使用(非私有可访问性)

JavaScript

建议

类型成员从未被使用(非私有可访问性)

JavaScript

建议

未访问的字段(非私有可访问性)

ASP.NET

建议

类型成员从未被使用(非私有可访问性)

ASP.NET

建议

成员可以设为私有(非私有可访问性)

XAML

建议

成员可以设为受保护(非私有可访问性)

XAML

建议

未访问的字段(非私有可访问性)

XAML

建议

类型从未被使用(非私有可访问性)

XAML

建议

类型成员从未被使用(非私有可访问性)

XAML

建议

未访问的字段(非私有可访问性)

HttpHandler or WebService

建议

类型成员从未被使用(非私有可访问性)

HttpHandler or WebService

建议

最后修改日期: 2025年 9月 26日