1

当我将 NDepend CQLinq 查询移植到 C# 时,我必须始终开始定义要查询的 codeBase,所以这个 CQLinq 查询

from m in Methods
where m.ILCyclomaticComplexity > 10 
select new {m}

在 C# 中使用 NDepend API 我必须移植到:

ICodeBase codeBase

from m in codeBase.Application.Methods
where m.ILCyclomaticComplexity > 10 
select m 

我看到有一个 ICQLinqExecutionContext。我可以为查询定义上下文,以便我可以直接使用程序集、方法、JustMyCode 等吗?

谢谢!

4

1 回答 1

1

正如ICQLinqExecutionContext文档中的解释:此接口保留用于 CQLinq 实现使用,不打算在您的代码中使用。

但正如您所注意到的,只需稍作重写,您就可以访问 100% 的 CQLinq 功能(例如使用 intead codeBase.Application.Methodsof just Methods

此外,通过阅读有关预定义域的 CQLinq 语法文档,您可以看到像 CQLinq 中的域Methods在 CQLinqcontext.CodeBase.Methods编译后时被转换为。您真正缺少的不是接口ICQLinqExecutionContext,而是 C# 中不可用的 CQLinq 编译后时间。

于 2013-10-07T07:59:41.397 回答