public static void Unregister(DN dn) { lock (Nodes) { Node node = Node.Root; foreach (RDN rdn in dn.RDNs) { string nodeText = null; foreach (RDNComponent comp in rdn.Components) { nodeText = comp.ComponentType + "=" + comp.ComponentValue; break; } if (node.Children.ContainsKey(nodeText)) { node = node.Children[nodeText]; } else { return; // Not found } } // Remove the node node.Remove(); } }