view Source/Configuration/ElementCollectionBase.cs @ 4:f757da6161a1

!bug 100 + 2h fixed gregression
author cin
date Sun, 24 Aug 2014 17:57:42 +0400
parents f990fcb411a9
children
line wrap: on
line source

using System;
using System.Configuration;

namespace BLToolkit.Configuration
{
	internal abstract class ElementCollectionBase<T>: ConfigurationElementCollection
		where T : ConfigurationElement, new()
	{
		protected override ConfigurationElement CreateNewElement()
		{
			return new T();
		}

		protected abstract object GetElementKey(T element);

		protected override sealed object GetElementKey(ConfigurationElement element)
		{
			return GetElementKey((T)element);
		}

		public new T this[string name]
		{
			get { return (T)BaseGet(name); }
		}

		public  T this[int index]
		{
			get { return (T)BaseGet(index); }
		}
	}
}