当我将 NDepend CQLinq 查询移植到 C# 时,我必须开始定义要查询的代码库,所以这个 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...等?
谢谢!
如 ICQLinqExecutionContext 文档中所述:此接口保留用于 CQLinq 实现,不应在代码中使用。
但正如您所注意到的,只需稍微重写一下,您就可以访问 100% 的 CQLinq 功能(例如使用仅codeBase.Application.Methods
Methods
的功能)
此外,通过阅读有关预定义域的 CQLinq 语法文档,您可以看到像 CQLinq 中的 Methods
这样的域在 CQLinq 编译后被转换为context.CodeBase.Methods
。您真正缺少的不是接口ICQLinqExecutionContext
而是 C# 中不可用的 CQLinq 编译后时间。