0

目前我正在与 NRefactory 合作一个项目。我们正在从 .cs 文件中过滤出诸如“类”和“接口”之类的类型声明。我们想将这些类型声明放入自定义命名空间,但由于某种原因它不起作用。有人能帮我解决这个问题吗?

我试过以下代码:

typeDeclaration.Parent.InsertChildBefore(typeDeclaration, ns, new Role<NamespaceDeclaration>("customNamespace"));
4

1 回答 1

1

我从未尝试在 TypeDeclaration之前插入命名空间节点。相反,我先添加了命名空间,然后添加了 TypeDeclaration:

  public static void AddChildTypeDeclaration(
        this AstNode tree, 
        TypeDeclaration newClass,
        NamespaceDeclaration parentNamespace = null)
    {
        if (null != parentNamespace)
        {
            var newNamespaceNode = new NamespaceDeclaration(
                parentNamespace.Name);

            newNamespaceNode.AddMember(newClass);

            tree.AddChild(newNamespaceNode, SyntaxTree.MemberRole);
        }
        else
        {
            tree.AddChild(newClass, Roles.TypeMemberRole);
        }
    }
于 2014-07-11T08:27:43.760 回答