小编Ily*_*yan的帖子

用Roslyn中的节点替换琐事

例如,我在C#代码文件中有以下文档注释:

/// add k+5
Run Code Online (Sandbox Code Playgroud)

我想用节点替换

_tst.AddElement(k+5);
Run Code Online (Sandbox Code Playgroud)

我怎么能用C#/ Roslyn呢?我已经找到了如何添加这一行,但没有找到如何替换.我添加节点的代码:

public static MethodDeclarationSyntax getChangedNode(MethodDeclarationSyntax method)
{
    var newmethod = method;
    var TestEntryArgName = "_tst";

    /* Adding _tst.AddElement(i); */
    foreach (var s in newmethod.Body.DescendantNodes())
    {
        SyntaxTrivia st = SyntaxFactory.SyntaxTrivia(SyntaxKind.WhitespaceTrivia, " ");
        bool fl = false;
        bool before = true;
        var lt = s.GetLeadingTrivia();

        foreach (var triviaEntry in lt)
        {
            if (triviaEntry.Kind() == SyntaxKind.SingleLineDocumentationCommentTrivia)
            {
                fl = true;
                st = triviaEntry;
                break;
            }
        }

        if (!fl)
        {
            lt = s.GetTrailingTrivia();
            before = …
Run Code Online (Sandbox Code Playgroud)

c# parsing roslyn

7
推荐指数
1
解决办法
1328
查看次数

标签 统计

c# ×1

parsing ×1

roslyn ×1