目前我正在与NRefactory合作开展一个项目。我们正在过滤.cs文件中的“类”和“接口”等类型声明。我们希望将这些类型的声明放入自定义命名空间,但由于某种原因它无法正常工作。有人能帮我解决这个问题吗?
我尝试过以下代码:
typeDeclaration.Parent.InsertChildBefore(typeDeclaration, ns, new Role<NamespaceDeclaration>("customNamespace"));
答案 0 :(得分: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);
}
}