Наша цель - построить абстрактное синтаксическое дерево игрушек для классов C# с использованием Roslyn. Мы просто хотим показать основную структуру класса, а не ходить по всему АСТ. Например (Взято из MSDN):Извлечение кода как чистой строки из API Roslyn
class TimePeriod
{
private double seconds;
public double Hours
{
get { return seconds/3600; }
set { seconds = value * 3600; }
}
}
Давайте только рассматривать недвижимость Hours
; нас интересует только извлечение токенов для модификатора (public
), тип возврата (double
), идентификатор (Hours
), как для тела двух аксессуаров, мы хотим непосредственно извлечь его как String
.
Однако, когда мы проходим через рослин (показано на экранном дампе), когда мы получаем тело аксессора, мы не находим поле, представляющее всю строку. Каков правильный способ достижения этого?
Похоже, вы упустили очевидное ... просто назовите '.ToString()' на узле AST :) –
@LucasTrzesniewski, серьезно, позвольте мне попробовать .... спасибо большое! Уже потрачено впустую почти полчаса. – user1935724
Приветствую вас, я на самом деле написал ответ, так как оказалось, что есть несколько способов сделать это. –