出于某种原因,我无法向 ArgumentList 语法节点添加任何内容。我尝试了以下示例。在所有这些情况下,都会创建一个有效的 Argument 节点,但是在 Add() 操作之后,argList.Arguments 的计数仍然为零。
var argList = SyntaxFactory.ArgumentList();
var tempMemAccess = SyntaxFactory.MemberAccessExpression(
SyntaxKind.SimpleMemberAccessExpression,
SyntaxFactory.IdentifierName(ids.First()),
SyntaxFactory.IdentifierName(SomeName));
argList.Arguments.Add(SyntaxFactory.Argument(tempMemAccess));
// argList remains empty
argList.Arguments.Add(
SyntaxFactory.Argument(SyntaxFactory.IdentifierName(possibleColName)));
// argList remains empty
argList.Arguments.Add((ArgumentSyntax)base.VisitArgument(a));
// argList remains empty
最佳答案
ArgumentListSyntax
是不可变的。
相反,您应该使用它的成员函数来创建带有附加参数的更新实例:
argList = argList.AddArguments(SyntaxFactory.Argument(tempMemAccess));
关于c# - 无法将参数添加到 Roslyn 中的 SyntaxFactory.ArgumentList(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48192989/