如何通过字符串在 Roslyn 中创建 SyntaxFactory.UsingStatement

How to create SyntaxFactory.UsingStatement in Roslyn through string

我想通过 Roslyn 填充这种类型的 using 语句。

Using(var logger = new MethodLogger("someparam"))
{

}

如何生成它..

我正在尝试这个SyntaxFactory.UsingStatement

对于这样的东西,我使用 roslynquoter。它使用 C# 代码生成 roslyn 调用。对于你的情况,它 returns 是这样的:

SyntaxFactory
.UsingStatement(SyntaxFactory.Block()/* the code inside the using block */)
.WithDeclaration(SyntaxFactory
    .VariableDeclaration(SyntaxFactory.IdentifierName("var"))
    .WithVariables(SyntaxFactory.SingletonSeparatedList(SyntaxFactory
         .VariableDeclarator(SyntaxFactory.Identifier("logger"))
         .WithInitializer(SyntaxFactory.EqualsValueClause(SyntaxFactory
             .ObjectCreationExpression(SyntaxFactory.IdentifierName(@"MethodLogger"))
             .WithArgumentList(/* arguments for MethodLogger ctor */)))