CQL请求组合

时间:2011-03-07 17:26:15

标签: ndepend cql

是否可以在CQL中撰写请求?

我想写一些像:

从汇编中选择类型“myassemblie”WHERE IsUsing SELECT METHODS FROM ASSEMBLIES“myotherassemblie”WHERE IsStatic

谢谢, 面包车

1 个答案:

答案 0 :(得分:3)

NDepend团队很自豪能够最终为这个问题提供一个优雅的答案:)感谢新的NDepend v4 Code Query LINQ (CQLinq) feature,您所要求的内容可以写成如下:

let staticMethods = Application.Assemblies.WithName("nunit.core")
                    .ChildMethods().Where(m => m.IsStatic)

from t in Application.Assemblies.WithName("nunit.util")
          .ChildTypes().UsingAny(staticMethods )

let staticMethodsUsed = staticMethods.UsedBy(t)
select new { t, staticMethodsUsed  }

还有很多其他方法可以编写这样的查询,但这种方式肯定是最简洁和优化的方法(右上方的面板告诉它在4ms内执行):

Code Query Composition through CQLinq