gpt4 book ai didi

c# - 如何从头开始构建 Roslyn 语法树?

转载 作者:行者123 更新时间:2023-12-02 02:38:07 25 4
gpt4 key购买 nike

我想做一些非常基本的代码生成(将服务 API 规范转换为一些 C# 类以与服务通信)。我发现this question这似乎表明我可以调用 Syntax.CompilationUnit() 来创建一个新的 CompilationUnityntax,但是我无法编译此代码;我在我能找到的任何语法类上都找不到 CompilationUnit 方法(我也找不到任何相关文档):(

CSharpSyntaxTree.Create 似乎需要一个 CSharpSyntaxNode,但我也不知道如何创建其中一个:/

我使用的是 VS 2015 RC 和最新的 Microsoft.CodeAnalysis NuGet 包 (1.0.0-rc2)。

最佳答案

似乎Syntax现在是SyntaxFactory:

var comp = SyntaxFactory.CompilationUnit()
.AddMembers(
SyntaxFactory.NamespaceDeclaration(SyntaxFactory.IdentifierName("ACO"))
.AddMembers(
SyntaxFactory.ClassDeclaration("MainForm")
.AddMembers(
SyntaxFactory.PropertyDeclaration(SyntaxFactory.ParseTypeName("System.Windows.Forms.Timer"), "Ticker")
.AddAccessorListAccessors(
SyntaxFactory.AccessorDeclaration(SyntaxKind.GetAccessorDeclaration).WithSemicolonToken(SyntaxFactory.Token(SyntaxKind.SemicolonToken)),
SyntaxFactory.AccessorDeclaration(SyntaxKind.SetAccessorDeclaration).WithSemicolonToken(SyntaxFactory.Token(SyntaxKind.SemicolonToken))),
SyntaxFactory.MethodDeclaration(SyntaxFactory.ParseTypeName("void"), "Main")
.AddModifiers(SyntaxFactory.Token(SyntaxKind.PublicKeyword))
.WithBody(SyntaxFactory.Block())
)
)
);

关于c# - 如何从头开始构建 Roslyn 语法树?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30685653/

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