2015-12-29 30 views
0

所以我想加載我的項目中的所有C#文件,所以我可以使用Roslyn解析它們。如何使用Roslyn解析所有正確的文件類型

我想要做這樣的事情:

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

我怎樣才能做到這一點。或者甚至有可能?

+1

在這種情況下什麼是「項目」?一個變量持有...什麼? –

回答

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; 
0

我已經成功地做到這一點是這樣的:

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

,但我不喜歡它。任何人有更好的想法?

+0

你的問題太模糊了,不能回答...打敗我是什麼類型的「項目」,或者你從哪裏得到它等等。 –