gpt4 book ai didi

c# - 从 Roslyn API 中将代码提取为纯字符串

转载 作者:行者123 更新时间:2023-11-30 21:50:07 24 4
gpt4 key购买 nike

我们的目标是使用 Roslyn 为 C# 类构建玩具抽象语法树。我们只想展示一个类的基本结构,而不是遍历整个 AST。例如(取自 MSDN):

class TimePeriod  
{
private double seconds;

public double Hours
{
get { return seconds / 3600; }
set { seconds = value * 3600; }
}
}

让我们只考虑属性 Hours;我们只对提取修饰符 (public)、返回类型 (double)、标识符 (Hours) 的标记感兴趣两个访问器,我们希望直接将其提取为 String

但是,当我们遍历 roslyn(在屏幕转储中显示)时,当我们获取访问者的正文时,我们没有找到表示整个字符串的字段。实现这一目标的正确方法是什么?

最佳答案

最明显的方法是调用ToString:

Returns the string representation of this node, not including its leading and trailing trivia.

如果您想要开头和结尾的琐事(空格、注释等),可以使用 ToFullString:

Returns full string representation of this node including its leading and trailing trivia.

为了提高效率,您可能还对 WriteTo 方法感兴趣,该方法将 ToFullString 将产生的内容写入 TextWriter,避免中间字符串分配:

Writes the full text of this node to the specified TextWriter.

关于c# - 从 Roslyn API 中将代码提取为纯字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36522830/

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