public void RemovePii(string[] headersPath, string[] piiList) { if (this.root == null) { throw new ArgumentNullException(SRClient.NullRoot); } foreach (TraceXPathNavigator.ElementNode elementNode in this.root.FindSubnodes(headersPath)) { TraceXPathNavigator.MaskSubnodes(elementNode, piiList); } }
private static void MaskSubnodes(TraceXPathNavigator.ElementNode element, string[] elementNames, bool processNodeItself) { if (elementNames == null) { throw new ArgumentNullException("elementNames"); } if (element != null) { bool flag = true; if (processNodeItself) { string[] strArrays = elementNames; int num = 0; while (num < (int)strArrays.Length) { if (string.CompareOrdinal(strArrays[num], element.name) != 0) { num++; } else { TraceXPathNavigator.MaskElement(element); flag = false; break; } } } if (flag && element.childNodes != null) { foreach (TraceXPathNavigator.ElementNode childNode in element.childNodes) { TraceXPathNavigator.MaskSubnodes(childNode, elementNames, true); } } } }
private static void MaskSubnodes(TraceXPathNavigator.ElementNode element, string[] elementNames) { TraceXPathNavigator.MaskSubnodes(element, elementNames, false); }