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)