2017-10-17 114 views
1

有沒有辦法迫使嘗試導入一個命名空間時,編譯器警告?防止導入命名空間

例如,項目可能需要參考System.Data,但我們想防止導入System.Data.OleDb在該項目中的任何類或模塊,而是建議切換到自定義的數據訪問圖書館。

我的猜測是,它可以使用自定義的編譯工具像羅斯林是可能的,但似乎喜歡的事,應該是可行的Visual Studio

+0

,您可以撥打羅斯林分析。 – SLaks

+0

謝謝。我看到一些關於Roslyn的博客文章希望有機會使用它,但現在還沒有選擇。很高興知道它可以做我需要的。 – mfreedm52

回答

2

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