0

現在、NRefactory でプロジェクトに取り組んでいます。「Class」や「Interface」などの型宣言を .cs ファイルからフィルタリングしています。これらの型宣言をカスタム名前空間に配置したいのですが、何らかの理由で機能しません。この問題で私を助けることができる人はいますか?

私は次のコードを試しました:

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

1 に答える 1

1

TypeDeclaration のにNamespace ノードを挿入しようとしたことはありません。代わりに、最初に名前空間を追加してから 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 に答える