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

问题描述 投票:2回答:2

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

c# syntax tree roslyn
2个回答
6
投票

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

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

0
投票

我在运行上面的代码时得到了ArgumentException。这似乎有效(虽然它可能有点像黑客):

var node = node.ReplaceToken(dotToken_to_remove, SyntaxFactory.MissingToken(SyntaxKind.DotToken));
© www.soinside.com 2019 - 2024. All rights reserved.