如何创建SyntaxFactory.在Roslyn通过字符串使用声明

本文关键字:字符串 声明 Roslyn 何创建 创建 SyntaxFactory | 更新日期: 2023-09-27 18:11:43

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

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

我如何生成它…

我正在尝试这个SyntaxFactory。UsingStatement

如何创建SyntaxFactory.在Roslyn通过字符串使用声明

对于这样的东西,我使用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 */)))