Наша цель — построить игрушечное абстрактное синтаксическое дерево для классов C# с помощью Roslyn. Мы просто хотим показать базовую структуру класса, а не проходить весь AST. Например (взято из MSDN):
class TimePeriod
{
private double seconds;
public double Hours
{
get { return seconds / 3600; }
set { seconds = value * 3600; }
}
}
Давайте рассмотрим только свойство Hours
; нас интересует только извлечение токенов для модификатора (public
), возвращаемого типа (double
), идентификатора (Hours
), а для тела двух средств доступа мы хотим напрямую извлечь его как String
.
Однако, когда мы проходим через roslyn (показан в дампе экрана), когда мы получаем тело аксессора, мы не находим поле, представляющее всю строку. Каков правильный способ достижения этого?