【问题标题】:How do I remove token in syntax tree in roslyn. e.g. remove virtual keyword token from property?如何在 roslyn 的语法树中删除标记。例如从属性中删除虚拟关键字标记?
【发布时间】:2019-04-15 09:50:16
【问题描述】:

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

【问题讨论】:

    标签: c# syntax tree roslyn


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

      运行上述代码时,我收到了ArgumentException。这似乎可行(尽管它可能有点小技巧):

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-05-09
        • 2011-07-27
        • 2011-11-20
        • 2023-04-02
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-06-11
        相关资源
        最近更新 更多