/// <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);
         }
     }
 }
Ejemplo n.º 2
0
        /// <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;
            }
        }
Ejemplo n.º 3
0
        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;
        }