I would like to be able to read XML documentation comments while parsing C# source code using Roslyn.
/// <summary> /// Documentation... /// </summary>
I tried setting the ParseDocumentationComments in the ParseOptions, but it doesn't seem to have an effect?
var parseOptions = ParseOptions.Default.WithParseDocumentationComments(true); SyntaxTree unit = SyntaxTree.ParseFile(file, parseOptions);
You'll need to either:
LeadingTrivia
of the syntax that contains the XML doc commentsCompilation
, find the Symbol
that has the XML doc comment and use the GetDocumentationComment()
method on it.A complete example:
using Roslyn.Compilers.CSharp; using System; using System.Linq; class Program { static void Main(string[] args) { var tree = SyntaxTree.ParseText(@" /// <summary>This is an xml doc comment</summary> class C { }"); var classNode = (ClassDeclarationSyntax)tree.GetRoot().Members.First(); var trivia = classNode.GetLeadingTrivia().Single(t => t.Kind == SyntaxKind.DocumentationCommentTrivia); var xml = trivia.GetStructure(); Console.WriteLine(xml); var compilation = Compilation.Create("test", syntaxTrees: new[] { tree }); var classSymbol = compilation.GlobalNamespace.GetTypeMembers("C").Single(); var docComment = classSymbol.GetDocumentationComment(); Console.WriteLine(docComment.SummaryTextOpt); } }
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With