所以我想在我的项目中加载所有C#文件,以便我可以使用Roslyn解析它们。
我想做这样的事情:
foreach(var file in project.Files.OfType<ROSLYN FILE TYPE HERE>())
{
... do something...
}
我怎样才能做到这一点。或者甚至可能吗?
答案 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")
但我不喜欢它。谁有更好的想法?