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 に答える