所以我想加載我的項目中的所有C#文件,所以我可以使用Roslyn解析它們。如何使用Roslyn解析所有正確的文件類型
我想要做這樣的事情:
foreach(var file in project.Files.OfType<ROSLYN FILE TYPE HERE>())
{
... do something...
}
我怎樣才能做到這一點。或者甚至有可能?
所以我想加載我的項目中的所有C#文件,所以我可以使用Roslyn解析它們。如何使用Roslyn解析所有正確的文件類型
我想要做這樣的事情:
foreach(var file in project.Files.OfType<ROSLYN FILE TYPE HERE>())
{
... do something...
}
我怎樣才能做到這一點。或者甚至有可能?
您可以使用項目中的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;
我已經成功地做到這一點是這樣的:
project.Files.Where(file=>Path.GetExtension(file.FilePath)=="cs")
,但我不喜歡它。任何人有更好的想法?
你的問題太模糊了,不能回答...打敗我是什麼類型的「項目」,或者你從哪裏得到它等等。 –
在這種情況下什麼是「項目」?一個變量持有...什麼? –