防止导入命名空间
Prevent Importing a namespace
有没有办法在尝试导入命名空间时强制发出编译器警告?
例如,该项目可能需要对 System.Data 的引用,但我们希望阻止该项目中的任何 class 或模块导入 System.Data.OleDb 而不是建议切换到自定义数据访问库。
我的猜测是可以使用像 Roslyn 这样的自定义编译器工具,但似乎在 Visual Studio
中应该可行
ReSharper 允许设置自定义规则和验证。在 Options->Code Inspection->Custom Patterns
下,您可以创建自定义验证模式。
Select Add pattern
并使用 forbidden 命名空间作为搜索模式(例如 System.Data.OleDb
)并将您的替换放在替换模式中(例如 Custom.Optimized.OleDb
)。然后您可以设置严重性,ReSharper
会建议更改。
显然,这只有在您和您的团队使用 ReSharper
时才有效。 (如果不是你真的应该)
更新:评论中问题的回答:你知道Resharper是如何管理整个开发团队的规则的吗
Resharper
使用 3 级设置:
- 个人设置:这些设置与您的用户帐户绑定。使用您的用户帐户(Windows 用户帐户)
时,这些设置适用于所有解决方案
- 解决方案设置:这些设置保存在本地并应用于一个特定的解决方案
- 团队共享:这些设置应用于一个解决方案,但存储在您签入的配置文件中,使其可供整个团队使用。
使用设置级别团队共享,您可以与整个团队共享一个通用配置文件。
除此之外,Resharper
提供了一个免费的命令行工具,您可以将其集成到构建服务器上,以在自动构建中强制执行这些规则。
有没有办法在尝试导入命名空间时强制发出编译器警告?
例如,该项目可能需要对 System.Data 的引用,但我们希望阻止该项目中的任何 class 或模块导入 System.Data.OleDb 而不是建议切换到自定义数据访问库。
我的猜测是可以使用像 Roslyn 这样的自定义编译器工具,但似乎在 Visual Studio
中应该可行ReSharper 允许设置自定义规则和验证。在 Options->Code Inspection->Custom Patterns
下,您可以创建自定义验证模式。
Select Add pattern
并使用 forbidden 命名空间作为搜索模式(例如 System.Data.OleDb
)并将您的替换放在替换模式中(例如 Custom.Optimized.OleDb
)。然后您可以设置严重性,ReSharper
会建议更改。
显然,这只有在您和您的团队使用 ReSharper
时才有效。 (如果不是你真的应该)
更新:评论中问题的回答:你知道Resharper是如何管理整个开发团队的规则的吗
Resharper
使用 3 级设置:
- 个人设置:这些设置与您的用户帐户绑定。使用您的用户帐户(Windows 用户帐户) 时,这些设置适用于所有解决方案
- 解决方案设置:这些设置保存在本地并应用于一个特定的解决方案
- 团队共享:这些设置应用于一个解决方案,但存储在您签入的配置文件中,使其可供整个团队使用。
使用设置级别团队共享,您可以与整个团队共享一个通用配置文件。
除此之外,Resharper
提供了一个免费的命令行工具,您可以将其集成到构建服务器上,以在自动构建中强制执行这些规则。