2011-08-22 54 views
4

我在使用NDepend時遇到了一些問題,不會忽略生成的代碼。當創建實體數據模型時,它會在EF生成的designer.cs文件中使用太多參數的方法提取問題。該類使用「自動生成」註釋進行註釋,但仍被NDepend拾取。如何指示NDepend忽略EF類?

我似乎無法找到如何強制* .designer.cs被忽略,甚至忽略沒有通配符的特定文件。我來的最接近的是this post,幾年前,帕特里克提到計劃做到這一點,但沒有更多。

我錯過了什麼嗎?有沒有簡單的方法來排除這種情況?

回答

5

Code Query and Rule over LINQ (CQLinq)確實爲提供了設施,忽略生成的代碼

有一個方便的預定義域名爲JustMyCode類型ICodeBaseView

JustMyCode代表CQLinq的一個工具,用於從CQLinq查詢結果中消除生成的代碼元素。例如下面的查詢將只匹配不是由工具生成(如UI設計者)大的方法:

from m in JustMyCode.Methods where m.NbLinesOfCode > 30 select m 

該組產生的代碼元素通過與CQLinq關鍵字notmycode前綴CQLinq查詢定義 。例如下面的查詢匹配的源文件的名稱以「了.Designer.cs」結束定義的方法:

notmycode from m in Methods where 
    m.SourceFileDeclAvailable && 
    m.SourceDecls.First().SourceFile.FileName.ToLower().EndsWith(".designer.cs") 
select m 

的CQLinq查詢亞軍執行所有notmycode查詢依靠JustMyCode查詢,因此域名JustMyCode被定義爲全部。顯然,如果notmycode查詢依賴於JustMyCode域,CQLinq編譯器會發出錯誤。

有4個默認值notmycode查詢,很容易適應您的需要。您也可以創建額外的notmycode查詢: