gpt4 book ai didi

c# - 如何使用 Roslyn 读取 XML 文档注释

转载 作者:IT王子 更新时间:2023-10-29 04:30:07 26 4
gpt4 key购买 nike

我希望能够在使用 Roslyn 解析 C# 源代码时阅读 XML 文档注释。

/// <summary>
/// Documentation...
/// </summary>

我尝试在 ParseOptions 中设置 ParseDocumentationComments,但似乎没有效果?

var parseOptions = ParseOptions.Default.WithParseDocumentationComments(true);
SyntaxTree unit = SyntaxTree.ParseFile(file, parseOptions);

最佳答案

您需要:

  1. 查看包含 XML 文档注释的语法的 LeadingTrivia
  2. 构造一个Compilation,找到具有XML doc注释的Symbol,并在其上使用GetDocumentationComment()方法。

一个完整的例子:

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);
}
}

关于c# - 如何使用 Roslyn 读取 XML 文档注释,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15763827/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com