0

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

我想做这样的事情:

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

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

4

2 回答 2

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;
于 2015-12-29T21:38:00.853 回答
0

我设法做到了这样:

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

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

于 2015-12-29T09:59:14.397 回答