简体   繁体   English

如何使用 Roslyn 创建带参数的构造函数?

[英]How to create a constructor with a parameter with Roslyn?

I'm generating classes from an Open API specification and need to create a constructor that accepts a parameter and sets it to a field.我正在从 Open API 规范生成类,需要创建一个接受参数并将其设置为字段的构造函数。 How do I do that with Roslyn?我该如何处理罗斯林?

I ended up using this code to create a constructor that accepts a parameter and sets it to a field:我最终使用此代码创建了一个接受参数并将其设置为字段的构造函数:

SyntaxFactory.ConstructorDeclaration("MyClass")
    .AddParameterListParameters(
        SyntaxFactory.Parameter(SyntaxFactory.Identifier("myParameter"))
            .WithType(SyntaxFactory.ParseTypeName("string")))
    .WithBody(SyntaxFactory.Block(SyntaxFactory.ParseStatement($"_myField = myParameter;")))
    .AddModifiers(SyntaxFactory.Token(SyntaxKind.PublicKeyword));

The generated constructor for this code is:此代码生成的构造函数是:

public MyClass(string myParameter)
{
     _myField = myParameter;
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM