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

Abh*_*bhi 0 c# roslyn

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

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

}
Run Code Online (Sandbox Code Playgroud)

我怎样才能生成它..

我正在尝试这个SyntaxFactory.UsingStatement

m0s*_*0sa 5

对于这样的东西,我使用roslynquoter.它用C#代码生成roslyn调用.对于您的情况,它返回如下内容:

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 */)))
Run Code Online (Sandbox Code Playgroud)