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