如何使用 Roslyn 检测 class 是否使用 Linq?
How to detect if a class uses Linq using Roslyn?
使用 Roslyn,我想检测 class 是否使用 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,不想做任何进一步的处理。
给定语法树,您可以简单地搜索 SyntaxKind.QueryExpression
或相关节点类型的节点。
有关详细信息,请在 VS2015 中打开该文件并查看语法可视化工具以查看语法树的确切外观。
使用 Roslyn,我想检测 class 是否使用 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,不想做任何进一步的处理。
给定语法树,您可以简单地搜索 SyntaxKind.QueryExpression
或相关节点类型的节点。
有关详细信息,请在 VS2015 中打开该文件并查看语法可视化工具以查看语法树的确切外观。