[github] https://github.com/chronos2015/samples/tree/master/cs/codes/07.Roslyn
Roslynでhello,worldくらいのソースコードを生成するサンプルを作成
ex)
namespaceを定義する場合
var nameapace = SyntaxFactory.NamespaceDeclaration(SyntaxFactory.ParseName(" sample"));
クラスを定義する場合
var classDesc = SyntaxFactory.ClassDeclaration("Program").AddModifiers(SyntaxFactory.Token(SyntaxKind.PublicKeyword))
総称型を定義する場合
var classDesc = SyntaxFactory.ClassDeclaration("Program").AddTypeParameterListParameters(SyntaxFactory.TypeParameter("T")).AddModifiers(SyntaxFactory.Token(SyntaxKind.PublicKeyword))
メソッドを定義する場合
var methodDesc = SyntaxFactory.MethodDeclaration(SyntaxFactory.ParseTypeName("void"), "Main").AddModifiers(SyntaxFactory.Token(SyntaxKind.StaticKeyword))
.AddParameterListParameters(SyntaxFactory.Parameter(SyntaxFactory.Identifier("args")).WithType(SyntaxFactory.ParseTypeName(typeof(string[]).FullName)))
こんな感じで少し面倒って感じる…