【发布时间】:2011-07-10 12:34:09
【问题描述】:
是否可以在 CQL 中编写请求?
我想写这样的东西:
从组件“myassemblie”中选择类型 IsUsing SELECT METHODS FROM ASSEMBLIES "myotherassemblie" WHERE IsStatic
谢谢, 货车
【问题讨论】:
是否可以在 CQL 中编写请求?
我想写这样的东西:
从组件“myassemblie”中选择类型 IsUsing SELECT METHODS FROM ASSEMBLIES "myotherassemblie" WHERE IsStatic
谢谢, 货车
【问题讨论】:
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 }
还有很多其他的方法可以编写这样的查询,但这种方法肯定是最简洁和优化的一种(右上角的面板告诉它在 4 毫秒内执行):
【讨论】: