SonarQube具有僅Java體系結構規則引擎。我正在尋找一種方法來爲C#.net項目實現類似的參考體系結構規則。SonarQube體系結構規則引擎,用於C#
例如:從*.B.*
類
- 禁止不訪問
*.A.*
強制從*.C.*
類的至少一個接入到*.A.*
。
什麼是最好的實施方式? 是否可以在FXCop中創建這些規則?
SonarQube具有僅Java體系結構規則引擎。我正在尋找一種方法來爲C#.net項目實現類似的參考體系結構規則。SonarQube體系結構規則引擎,用於C#
例如:從*.B.*
類
*.A.*
強制從*.C.*
類的至少一個接入到*.A.*
。什麼是最好的實施方式? 是否可以在FXCop中創建這些規則?
從長遠來看,我們一定要提供這樣的規則出與C#SonarQube插件箱。但是,在此期間,您可以開發自己的自定義FxCop規則(現有的C#SonarQube插件支持),或者開發新的SonarQube插件以從不支持的工具(如Nitriq)導入問題,如建議。
隨意看看R·插件,如果您需要任何幫助請求發送到SonarQube開發郵件列表: https://github.com/SonarCommunity/sonar-resharper
您可以Nitriq創建的規則:
嚴禁將.A訪問。 from 。類
var results =
from t in Types
where t.Name.Equals("A") && t.TypesUsing.Any("B")
select new { t.TypeId, t.Name, t.FullName };
Warn(results, 0);
強制至少一個接入到.A。從.C。類。
var results =
from t in Types
where t.Name.Equals("A") && !t.TypesUsing.Any("C")
select new { t.TypeId, t.Name, t.FullName };
Warn(results, 0);
另一種方法是使用Roslyn