如何使用Roslyn解析所有正确的文件类型

时间:2015-12-29 09:36:26

标签: roslyn roslyn-code-analysis

所以我想在我的项目中加载所有C#文件,以便我可以使用Roslyn解析它们。

我想做这样的事情:

foreach(var file in project.Files.OfType<ROSLYN FILE TYPE HERE>())
{
... do something...
}

我怎样才能做到这一点。或者甚至可能吗?

2 个答案:

答案 0 :(得分:1)

您可以使用项目中的Documents属性从项目中获取C#文件。 下面的扩展方法获取给定项目中的所有C#文件。

using Microsoft.CodeAnalysis;
using System.Collections.Generic;
using System.Linq;

static public IEnumerable<Document> CSFiles(this Project project) =>
    "C#" == project?.Language ?
    project?.Documents?.Where(Document => Document.SupportsSemanticModel) : null;

答案 1 :(得分:0)

我设法这样做了:

project.Files.Where(file=>Path.GetExtension(file.FilePath)=="cs")

但我不喜欢它。谁有更好的想法?