Roslyn : Как получить NamespaceDeclarationSyntax в Roslyn C#?

У меня есть метод который парсит код C#. На вход этого метода подается код в виде строки. После чего с помощью синтаксического дерева я хочу получить список namespace. Проблема заключается в том, что если namespace объявлен так namespace MyNamespace;, то _root.Members.OfType<NamespaceDeclarationSyntax>() будет равен null. Однако, если объявить namespace, как namespace MyNamespace { }, то всё будет номально. Помогите, пожалуйста, найти решение данной проблемы?

Код всего метода

public FileModel ParseEntitiesFromFile(string code)
{
    var fileModel = new FileModel()
    {
        Name = nameFile
    };
    var syntaxTree = CSharpSyntaxTree.ParseText(code);
    var _root = syntaxTree.GetCompilationUnitRoot();
    fileModel.CodeEtities.Namespaces.AddRange(GetListNamespacesModel(_root.Members.OfType<NamespaceDeclarationSyntax>()));
    return fileModel;
}

Пример кода, который подается в метод

namespace MyNamespace;

public class MyClass { 

}

Ответы (1 шт):

Автор решения: Кирилл Серебренников

из комментария EvgeniyZ, понял, что нужно использовать BaseNamespaceDeclarationSyntax

→ Ссылка