Roslynリライタを使用しようとしていますが、IdentifierNameを式で置き換えることができません。Roslyn:IdentifierNameを式に置き換える方法
私はこのような交換を行うために訪問者をするときに理解したので、タイプに合わせる必要があります。型を無視してこの置換を行う回避策はありますか?あなたのケースで
return ((SyntaxNode)node).ReplaceNode(node, newExpr);
ものの、ReplaceNode()
は必要ありません。
public class NameRewriter : CSharpSyntaxRewriter
{
private readonly ExpressionSyntax newExpr;
public NameRewriter(ExpressionSyntax newExpr) {
this.newExpr = newExpr;
}
public override SyntaxNode VisitIdentifierName(IdentifierNameSyntax node) {
return node.ReplaceNode(node, newExpr);
}
}