Mercurial > pub > bltoolkit
diff Source/Configuration/ElementBase.cs @ 0:f990fcb411a9
Копия текущей версии из github
author | cin |
---|---|
date | Thu, 27 Mar 2014 21:46:09 +0400 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Source/Configuration/ElementBase.cs Thu Mar 27 21:46:09 2014 +0400 @@ -0,0 +1,39 @@ +using System; +using System.Collections.Specialized; +using System.Configuration; + +namespace BLToolkit.Configuration +{ + internal abstract class ElementBase : ConfigurationElement + { + protected ConfigurationPropertyCollection _properties = new ConfigurationPropertyCollection(); + + protected override ConfigurationPropertyCollection Properties + { + get { return _properties; } + } + + /// <summary> + /// Gets a value indicating whether an unknown attribute is encountered during deserialization. + /// </summary> + /// <returns> + /// True when an unknown attribute is encountered while deserializing. + /// </returns> + /// <param name="name">The name of the unrecognized attribute.</param> + /// <param name="value">The value of the unrecognized attribute.</param> + protected override bool OnDeserializeUnrecognizedAttribute(string name, string value) + { + ConfigurationProperty property = new ConfigurationProperty(name, typeof(string), value); + _properties.Add(property); + base[property] = value; + Attributes.Add(name, value); + return true; + } + + private NameValueCollection _attributes; + public NameValueCollection Attributes + { + get { return _attributes ?? (_attributes = new NameValueCollection(StringComparer.OrdinalIgnoreCase));} + } + } +} \ No newline at end of file