/// <summary>
        /// Returns the configuration element with the specified key.
        /// </summary>
        /// <param name="key">The key of the element to return.</param>
        /// <returns>The <see cref="ConfigurationElement"/> with the specified key; otherwise, null.</returns>
        protected virtual ConfigurationElement Get(object key)
        {
            IResolvesTypeAliases element = (IResolvesTypeAliases)BaseGet(key);

            if (element != null)
            {
                element.TypeResolver = typeResolver;
            }
            return((ConfigurationElement)element);
        }
        ///<summary>
        ///Returns an enumerator that iterates through a collection.
        ///</summary>
        ///
        ///<returns>
        ///An <see cref="T:System.Collections.IEnumerator"></see> object that can be used to iterate through the collection.
        ///</returns>
        ///<filterpriority>2</filterpriority>
        public new IEnumerator GetEnumerator()
        {
            IEnumerator enumerator = base.GetEnumerator();

            while (enumerator.MoveNext())
            {
                object current = enumerator.Current;
                IResolvesTypeAliases element = current as IResolvesTypeAliases;
                if (element != null)
                {
                    element.TypeResolver = typeResolver;
                }
                yield return(current);
            }
        }