Как определить контекст выполнения NDepend API CQLinq в С#?

Когда я переношу запрос NDepend CQLinq на C#, я всегда должен начинать определять кодовую базу для запроса, поэтому этот запрос CQLinq

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

используя NDepend API в С#, я должен перенести на:

ICodeBase codeBase

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

Я вижу, что есть ICQLinqExecutionContext. Могу ли я определить контекст для запросов, чтобы напрямую использовать сборки, методы, JustMyCode и т. д.?

Спасибо!


person Kaikus    schedule 05.10.2013    source источник


Ответы (1)


Как поясняется в ICQLinqExecutionContext doc: Этот интерфейс зарезервирован для реализации CQLinq и не предназначен для использования в вашем коде.

Но, как вы заметили, всего лишь немного переписав, вы можете получить доступ ко 100% функций CQLinq (например, используя codeBase.Application.Methods вместо Methods)

Кроме того, прочитав документ по синтаксису CQLinq о предварительно определенном домене, вы увидите, что такой домен, как Methods в CQLinq преобразуется в context.CodeBase.Methods во время пост-компиляции CQLinq. Чего вам действительно не хватает, так это не интерфейса ICQLinqExecutionContext, а времени после компиляции CQLinq, которого нет в C#.

person Patrick from NDepend team    schedule 07.10.2013