/// <summary> /// Add the <see cref="NamespaceTreeNode"/> if it doesn't exist /// </summary> public void Add() { if (nsNodeCreated) { asmNode.AddToChildren(nsNode); nsNode.OnReadded(); } }
public void Execute() { UTF8String newNamespace = newName; if (existingNsNode != null) { Debug.Assert(origChildren.Length == nsNode.Children.Count); foreach (var typeNode in origChildren) { typeNode.OnBeforeRemoved(); } nsNode.Children.Clear(); foreach (var typeNode in origChildren) { typeNode.TypeDef.Namespace = newNamespace; existingNsNode.AddToChildren(typeNode); typeNode.OnReadded(); } } else { nsNode.OnBeforeRemoved(); bool b = origParentChildIndex < origParentNode.Children.Count && origParentNode.Children[origParentChildIndex] == nsNode; Debug.Assert(b); if (!b) { throw new InvalidOperationException(); } origParentNode.Children.RemoveAt(origParentChildIndex); nsNode.Name = newName; foreach (var typeNode in origChildren) { typeNode.TypeDef.Namespace = newNamespace; } origParentNode.AddToChildren(nsNode); nsNode.OnReadded(); } foreach (var info in typeRefInfos) { info.TypeRef.Namespace = newNamespace; } }