NRefactory добавить пространство имен в объявление типа
В настоящее время я работаю над проектом с NRefactory. Мы фильтруем объявления типа, такие как "Класс" и "Интерфейс", из файла.cs. Мы хотели бы поместить эти объявления типов в собственное пространство имен, но по какой-то причине это не работает. Кто-нибудь может помочь мне с этой проблемой?
Я пробовал следующий код:
typeDeclaration.Parent.InsertChildBefore(typeDeclaration, ns, new Role<NamespaceDeclaration>("customNamespace"));
1 ответ
Я никогда не пытался вставить узел Namespace до 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);
}
}