Получить вложенный класс из Roslyn CompilationUnitSyntax.C#

Место общения программистов C#
Ответить
Anonymous
 Получить вложенный класс из Roslyn CompilationUnitSyntax.

Сообщение Anonymous »

Я использую Roslyn для анализа некоторых файлов C# и генерации типов TypeScript.

Код: Выделить всё

var source = System.IO.File.ReadAllText(pathToCSharpFile);
var tree = CSharpSyntaxTree.ParseText(source);
var root = (CompilationUnitSyntax) tree.GetRoot();
Я рекурсивно обхожу дерево от корня, чтобы получить информацию о свойствах, полях и вложенных классах.

Код: Выделить всё

namespace MyNamespace
{
public class Foo
{
public Bar BarProp { get; set; }

public Baz BazProp { get; set; }

public class Bar
{
}
}
}
Определение TypeScript для этого должно выглядеть следующим образом:

Код: Выделить всё

interface Foo {
barProp: Foo.Bar;
bazProp: Baz;
}

namespace Foo {
interface Bar {
}
}
От меня ускользает то, как определить, что тип BarProp является вложенным классом, чтобы правильно указать тип barProp в определении TypeScript.

Доступна ли эта информация при использовании PropertyDeclarationSyntax, FieldDeclarationSyntax и ClassDeclarationSyntax, или мне нужно использовать другой подход для вывода правильных типов?

Подробнее здесь: https://stackoverflow.com/questions/508 ... unitsyntax
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»