我正在为visual studio 2015编写一个重构工具,我想创建一个重构类元素的重构。我的问题:我无法在SyntaxTree上交换两个SyntaxNode 。基本交换方法不起作用,因为SyntaxNode是一个引用类型,结果是执行下面代码后的firstSyntaxNode的两个副本。
SyntaxNode tmp = firstSyntaxNode;
root = root.ReplaceNode(firstSyntaxNode, secondSyntaxNode);
root = root.ReplaceNode(secondSyntaxNode, tmp);
如何交换两个SyntaxNode? strong>
答案 0 :(得分:0)
您可以通过调用ReplaceNodes
:
root = root.ReplaceNodes(new[] { firstSyntaxNode, secondSyntaxNode },
(original, _) => original == firstSyntaxNode ? secondSyntaxNode : firstSyntaxNode);