all green

プログラム、アプリ作成、Web等備忘録が中心です

C#のクラスファイルからCodeAnalysisを使用してネームスペースを取得する

CodeAnalysisを使用したC#のクラスファイルからネームスペースを取得する方法。

CodeAnalysisはソースコードのテンプレを用意して
タグを埋め込んで書き換えなどを行っていたときに使用しました。

・環境
Unity 2020.2.6f1
Code Analysis 0.1.2-preview

/// <summary>
/// ネームスペースの取得
/// </summary>
public string GetNameSpace(string path)
{
    var code = File.ReadAllText(path);
    var syntaxTree = CSharpSyntaxTree.ParseText(code);
    var compilationUnitSyntax = syntaxTree.GetCompilationUnitRoot();
    var namespaceDeclarationSyntaxs = compilationUnitSyntax.DescendantNodes().OfType<NamespaceDeclarationSyntax>();
    return namespaceDeclarationSyntaxs.First().Name.ToString();
}


普通にテキストファイルとして開いて取得もできるけれど
もっとスマートにやれないかなと思っていた所CodeAnalysisを見つけたので使ってみました。
CodeAnalysisとても良いですね。
他にも色々と利用しています。