/// <summary> /// Undo what <see cref="Add()"/> did /// </summary> public void Remove() { if (nsNodeCreated) { nsNode.OnBeforeRemoved(); asmNode.Children.Remove(nsNode); } }
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; } }