CQLinq クエリを単純な C# LINQ クエリに移植することはできますか?
NDepend API を使用してコード アナライザー ツールを作成しており、CQLinq クエリを使用したいと考えています。
移植しやすいものもあります。例えば、
from m in Methods
where m.ILCyclomaticComplexity > 10
orderby m.ILCyclomaticComplexity descending
select new { m }
に簡単に移植できます
using NDepend.CodeModel;
using NDepend.CodeQuery;
public List<IMethod> GetUnitTestFromType(ICodeBase codeBase)
{
var complexMethods = (from m in codeBase.Application.Methods
where m.ILCyclomaticComplexity > 10
orderby m.ILCyclomaticComplexity descending
select m).ToList();
return complexMethods;
}
しかし、より強力な CQLinq メソッド、つまり AllowNoMatch() を使用したいと思います
from t in codeBase.Application.Types
where t.Implement("System.IDisposable".AllowNoMatch())
select t;
実際、CQLinq クエリを直接使用するのは素晴らしいことです。どのように?
CreateQuery、Compile、Execute などのメソッドを含む NDepend.CodeQuery 名前空間があることがわかります。誰かが私に使用例を見せてもらえますか?
ありがとう!