防止导入命名空间

问题描述:

有没有办法迫使尝试导入一个命名空间时,编译器警告?防止导入命名空间

例如,项目可能需要参考System.Data,但我们想防止导入System.Data.OleDb在该项目中的任何类或模块,而是建议切换到自定义的数据访问图书馆。

我的猜测是,它可以使用自定义的编译工具像罗斯林是可能的,但似乎喜欢的事,应该是可行的Visual Studio

+0

,您可以拨打罗斯林分析。 – SLaks

+0

谢谢。我看到一些关于Roslyn的博客文章希望有机会使用它,但现在还没有选择。很高兴知道它可以做我需要的。 – mfreedm52

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

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

显然,如果您和您的团队使用ReSharper这只会工作。 (如果没有,你真的应该)

更新:答案在评论的问题:你知道ReSharper的如何在一个开发团队

Resharper使用3个级别的设置管理规则:

  1. 个人设置:这些设置绑定到您的用户帐户。这些设置应用到所有的解决方案与您的用户帐户(Windows用户帐户)
  2. 解决方案设置工作时:这些设置保存到本地,被应用到一个具体的解决方案
  3. 团队共享:这些设置应用到一个解决方案,但存储在您签入的配置文件中,使其可用于整个团队。

使用设置级别团队共享您可以与整个团队共享一个通用配置文件。

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

+0

很高兴知道Resharper也可以这样做。你知道Resharper如何在开发团队中管理规则吗?我一直以为这是更多的是工具来检查工作分别不强制警告/错误 – mfreedm52

+0

@ mfreedm52我已经更新的答案,包括你的问题。 – Iqon