拥有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();
现在,我只需要访问树中正下方的Node。我确信这很简单,但我找不到办法。
非常感谢任何帮助,谢谢!
答案 0 :(得分:2)
要访问该节点,您需要在GetStructure()
上致电SyntaxTrivia
。这将返回StructuredTriviaSyntax
,但由于您知道自己有DocumentationComment
,因此它实际上是DocumentationCommentSyntax
,因此您可以将其投射到该值。{/ p>
此外,您无需处理FirstToken
,而是可以使用GetLeadingTrivia()
。
var documentationCommentTrivia =
method.GetLeadingTrivia()
.SingleOrDefault(t => t.Kind == SyntaxKind.DocumentationComment);
if (documentationCommentTrivia.Kind == SyntaxKind.None)
return null;
var documentationCommentSyntax =
(DocumentationCommentSyntax)documentationCommentTrivia.GetStructure();