使用 Roslyn ,我想检测一个班级是否使用 Linq 。
假设某些代码如下:
//...
int[] numbers = { 5, 4, 1, 3, 9, 8, 6, 7, 2, 0 };
var lowNums =
from n in numbers
where n < 5
select n;
//...
还假设此代码不包含的文件 using System.Linq;
我希望能够检测到文件中有linq语句,并且(比方说)自动添加using System.Linq
。我想检测Linq的查询或方法语法。
有没有办法可以使用Roslyn检测到这个?我只是想知道代码是否使用Linq,并且不想进行任何进一步的处理。
答案 0 :(得分:4)
给定语法树,您只需搜索SyntaxKind.QueryExpression
或相关节点类型的节点。
有关更多信息,请在VS2015中打开该文件,然后查看语法可视化工具以查看语法树的确切内容。