2012-09-04 25 views
0

Syntax visualizer screenshot訪問DocumentationComment節點給予DocumentationComment瑣事?

有一個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(); 

現在,我只需要訪問節點,是適合其下樹。我相信這很簡單,但我找不到方法。

任何幫助將非常感激,謝謝!

+0

你不應該像這樣使用'catch',而應該明確地測試'null'。 – svick

+0

好點,我糾正了我的代碼。 –

回答

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(); 
+0

幫助了很多,謝謝:-) –