阻止导入名称空间

时间:2017-10-17 15:03:55

标签: .net visual-studio roslyn

在尝试导入命名空间时,是否有办法强制编译器警告?

例如,项目可能需要引用 System.Data ,但我们希望阻止该项目中的任何类或模块导入 System.Data.OleDb 而是建议切换到自定义数据访问库。

我的猜测是可以使用像 Roslyn 这样的自定义编译器工具,但似乎应该可以在Visual Studio中使用

1 个答案:

答案 0 :(得分:2)

ReSharper允许设置自定义规则和验证。在Options->Code Inspection->Custom Patterns下,您可以创建自定义验证模式。

选择Add pattern并使用禁止名称空间作为搜索模式(例如System.Data.OleDb),并将替换模式放入替换模式(例如Custom.Optimized.OleDb)。然后,您可以设置严重性,ReSharper将建议更改。

显然,这只有在您和您的团队使用ReSharper时才有效。 (如果不是你真的应该)

更新:回答评论中的问题:您知道Resharper如何管理开发团队的规则

Resharper使用3级设置:

  1. 个人设置:这些设置已绑定到您的用户帐户。这些设置适用于使用您的用户帐户(Windows用户帐户)时的所有解决方案
  2. 解决方案设置:这些设置已保存在本地并应用于一个特定解决方案
  3. 团队共享:这些设置应用于一个解决方案,但存储在您签入的配置文件中,使其可供整个团队使用。
  4. 使用设置级别团队共享,您可以与整个团队共享一个公共配置文件。

    除此之外,Resharper提供了一个免费的命令行工具,您可以在构建服务器上集成,以在自动构建中强制执行这些规则。