3

我正在为我的客户评估 NDepend 工具,并想知道是否有人可以为以下查询提供帮助:

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

尽管这提供了一个大列表,但我还想检查唯一的引用是否来自测试项目,例如仅由 MyNamespace.Tests 引用的 MyNamespace。

怎么可能做到这一点?我还没有找到有关创建不带常量的 IsUsedBy 的文档。

真挚地,

马丁

4

1 回答 1

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

请注意,在前面的查询中,我们甚至没有对 typesUser (使用 a typesUser.Where(t => ...))进行迭代,而是使用 NDepend.API 设置方法,例如WithNameWildcardMatchNotIn()

于 2012-06-06T14:53:39.407 回答