目前我正在与 NRefactory 合作一个项目。我们正在从 .cs 文件中过滤出诸如“类”和“接口”之类的类型声明。我们想将这些类型声明放入自定义命名空间,但由于某种原因它不起作用。有人能帮我解决这个问题吗?
我试过以下代码:
typeDeclaration.Parent.InsertChildBefore(typeDeclaration, ns, new Role<NamespaceDeclaration>("customNamespace"));
目前我正在与 NRefactory 合作一个项目。我们正在从 .cs 文件中过滤出诸如“类”和“接口”之类的类型声明。我们想将这些类型声明放入自定义命名空间,但由于某种原因它不起作用。有人能帮我解决这个问题吗?
我试过以下代码:
typeDeclaration.Parent.InsertChildBefore(typeDeclaration, ns, new Role<NamespaceDeclaration>("customNamespace"));
我从未尝试在 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);
}
}