0

语法可视化屏幕截图

有一个 MethodDeclarationSyntax 节点,我正在尝试访问它的 DocumentationCommentSyntax 节点。

我可以通过这样做获得 DocumentationComment 琐事:

var firstToken = member.GetFirstToken();
var documentationTrivias = firstToken.LeadingTrivia.Where(t => t.Kind == SyntaxKind.DocumentationComment);
if(documentationTrivias.Count() != 1)
    return null;
var documentationTrivia = documentationTrivias.Single();

现在,我只需要访问树中它正下方的节点。我相信这很简单,但我找不到方法。

任何帮助将不胜感激,谢谢!

4

1 回答 1

2

要访问该节点,您需要调用GetStructure(). SyntaxTrivia那会返回StructuredTriviaSyntax,但既然你知道你有DocumentationComment,它实际上会是DocumentationCommentSyntax,所以你可以将它转换为那个。

另外,您不需要处理FirstToken,您可以使用它GetLeadingTrivia()来代替。

var documentationCommentTrivia =
    method.GetLeadingTrivia()
          .SingleOrDefault(t => t.Kind == SyntaxKind.DocumentationComment);
if (documentationCommentTrivia.Kind == SyntaxKind.None)
    return null;

var documentationCommentSyntax =
    (DocumentationCommentSyntax)documentationCommentTrivia.GetStructure();
于 2012-09-04T09:37:51.583 回答