Quiero hacer una generación de código muy básica (convertir una especificación de API de servicio en algunas clases de C# para comunicarme con el servicio). Encontré esta pregunta que parece sugerir que puedo llamar a Syntax.CompilationUnit() para crear un nuevo CompilationUnityntax , sin embargo, no puedo compilar este código; No puedo encontrar un método CompilationUnit en ninguna de las clases de sintaxis que puedo encontrar (ni puedo encontrar ningún documento sobre esto) :(
CSharpSyntaxTree.Create parece necesitar un CSharpSyntaxNode , pero tampoco sé cómo crear uno de ellos:/
Estoy usando VS 2015 RC con el último paquete Microsoft.CodeAnalysis NuGet (1.0.0-rc2).
Parece que Syntax ahora es 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()) ) ) );