【发布时间】:2019-04-15 09:50:16
【问题描述】:
如何在 roslyn 的语法树中删除标记。例如从属性中删除虚拟关键字标记?
Roslyn 有 RemoveNode 方法,但我找不到 RemoveToken 方法或删除令牌的方法。
【问题讨论】:
如何在 roslyn 的语法树中删除标记。例如从属性中删除虚拟关键字标记?
Roslyn 有 RemoveNode 方法,但我找不到 RemoveToken 方法或删除令牌的方法。
【问题讨论】:
找到了答案。要删除,请将令牌替换为无类型的新令牌。尴尬但有效。
var noneToken = SyntaxFactory.Token(SyntaxKind.None);
node = node.ReplaceToken(token_to_remove, noneToken);
【讨论】:
运行上述代码时,我收到了ArgumentException。这似乎可行(尽管它可能有点小技巧):
var node = node.ReplaceToken(dotToken_to_remove, SyntaxFactory.MissingToken(SyntaxKind.DotToken));
【讨论】: