/// <inheritdoc /> public void Process(XmlReader reader, ILegacyConfigurationItem parent, IDictionary <string, string> data) { foreach (var key in data.Keys.ToList()) { if (key.StartsWith(_configurationPathPrefix, StringComparison.OrdinalIgnoreCase)) { data.Remove(key); } } }
/// <inheritdoc /> public void Process(XmlReader reader, ILegacyConfigurationItem parent, IDictionary <string, string> data) { if (reader.NodeType == XmlNodeType.Attribute && StringComparer.OrdinalIgnoreCase.Equals(reader.LocalName, _attributeName)) { if (!_allowDuplicates && data.ContainsKey(parent.ConfigurationPath)) { throw new FormatException($"A duplicate key '{parent.ConfigurationPath}' was found.{reader.GetLineInfo()}"); } data[parent.ConfigurationPath] = reader.Value; } }
private static void ProcessAttributes([NotNull] XmlReader reader, ILegacyConfigurationItem parent, IDictionary <string, string> data, IValueSelector valueSelector) { for (var i = 0; i < reader.AttributeCount; i++) { reader.MoveToAttribute(i); valueSelector.Process(reader, parent, data); } // Go back to the element containing the attributes we just processed reader.MoveToElement(); }
/// <inheritdoc /> public void Process(XmlReader reader, ILegacyConfigurationItem parent, IDictionary <string, string> data) { if (reader.NodeType != XmlNodeType.Attribute) { return; } if (StringComparer.OrdinalIgnoreCase.Equals(reader.LocalName, _attributeToIgnore)) { return; } var configPath = parent.BuildConfigurationPath(reader.LocalName); if (data.ContainsKey(configPath)) { throw new FormatException($"A duplicate key '{configPath}' was found.{reader.GetLineInfo()}"); } data[configPath] = reader.Value; }