如何在roslyn中删除语法树中的标记。例如从属性中删除虚拟关键字令牌?

时间:2015-08-17 06:58:37

标签: c# syntax tree roslyn

如何在roslyn中删除语法树中的标记。例如从属性中删除虚拟关键字令牌? Roslyn有RemoveNode方法,但我无法找到RemoveToken方法或删除令牌的方法。

2 个答案:

答案 0 :(得分:6)

找到答案。要删除,请使用类型为none的新令牌替换令牌。尴尬但有效。

var noneToken = SyntaxFactory.Token(SyntaxKind.None);
node = node.ReplaceToken(token_to_remove, noneToken);

答案 1 :(得分:0)

运行上面的代码时,我得到了ArgumentException。这似乎可行(尽管可能有点hack):

var node = node.ReplaceToken(dotToken_to_remove, SyntaxFactory.MissingToken(SyntaxKind.DotToken));