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

Dan*_*eny 10 c# roslyn visual-studio-2015

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

CSharpSyntaxTree.Create似乎需要一个CSharpSyntaxNode,但我无法弄清楚如何创建其中之一:/

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

Dan*_*eny 10

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())
                            )
                    )
            );
Run Code Online (Sandbox Code Playgroud)