我试图使用Roslyn或现在称为.NET编译器平台来创建一个小型代码生成器,我很谨慎地使用了codedom,这很麻烦,但是MSDN得到了一个参考,现在Roslyn几乎没有文档,所有文档都集中在代码分析上,而不是代码生成。所以我的问题很简单:我怎样才能创造出这样的东西:
private const string MyString = "This is my string";使用编译器平台类?我找到了一些类似于FieldDeclarationSyntax和ExpressionSyntax的东西,但是我找到的所有示例都生成类似Myclass myvariable = new ()这样的东西;没有什么比如何生成字符串类型声明更简单了。任何线索都会很好。提前谢谢你
发布于 2016-06-02 19:48:12
您可以使用罗斯林商轻松地了解如何构建不同的语法。在本例中,您希望将const和private修饰符添加到字段声明中,这样看起来如下所示:
var constField = SyntaxFactory.FieldDeclaration(
SyntaxFactory.VariableDeclaration(
SyntaxFactory.PredefinedType(
SyntaxFactory.Token(SyntaxKind.StringKeyword)))
.WithVariables(
SyntaxFactory.SingletonSeparatedList<VariableDeclaratorSyntax>(
SyntaxFactory.VariableDeclarator(
SyntaxFactory.Identifier("MyString"))
.WithInitializer(
SyntaxFactory.EqualsValueClause(
SyntaxFactory.LiteralExpression(
SyntaxKind.StringLiteralExpression,
SyntaxFactory.Literal("This is my string")))))))
.WithModifiers(
SyntaxFactory.TokenList(
new []{
SyntaxFactory.Token(SyntaxKind.PrivateKeyword),
SyntaxFactory.Token(SyntaxKind.ConstKeyword)}))))))https://stackoverflow.com/questions/37600626
复制相似问题