2012-06-06 29 views
3

組件我在評估我的一個客戶端NDepend的工具的過程中,並想知道如果有人能提供援助以下查詢:尋找「死」與NDepend的

// <Name>Potentially dead Assemblies</Name> 
warnif count > 0 
    from a in JustMyCode.Assemblies where 
     a.NbTypesUsingMe == 0 
     select a 

雖然這提供了一個大的列表,我還想檢查是否唯一引用來自MyNamespace這樣的測試項目,只有MyNamespace.Tests引用。

這怎麼辦?我還沒有找到有關創建IsUsedBy的文檔,這些文檔並不是一成不變的。

真誠,

馬丁

回答

2

匹配死的組件,你不必指望類型,但利用我只是來算組件:

warnif count > 0 
from a in JustMyCode.Assemblies where 
    a.AssembliesUsingMe.Count() == 0 
    select a 

如果你想匹配的條件在使用裝配的類型上,你可以寫下類似的東西:

warnif count > 0 
from a in JustMyCode.Assemblies 
let typesUser = Application.Types.Using(a) 
where typesUser.Count() == 0 || 
     typesUser.ParentNamespaces() 
     .WithNameWildcardMatchNotIn("MyNamespace.Tests*").Count() == 0 
select a 

Noti ce在這個之前的查詢中,我們甚至不會遍歷typesUser(具有typesUser.Where(t => ...)),但是我們使用NDepend.API集合方法,如WithNameWildcardMatchNotIn()

+0

對通配符做一個小小的更改爲「* Test *」來捕獲所有的測試項目(沒有標準的命名約定),這可以按需要工作。非常感謝。 –