1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859 |
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Configuration;
- namespace SuperSocket.SocketBase.Config
- {
- /// <summary>
- /// Type provider colletion configuration
- /// </summary>
- [ConfigurationCollection(typeof(TypeProvider))]
- public class TypeProviderCollection : ConfigurationElementCollection, IEnumerable<ITypeProvider>
- {
- /// <summary>
- /// When overridden in a derived class, creates a new <see cref="T:System.Configuration.ConfigurationElement"/>.
- /// </summary>
- /// <returns>
- /// A new <see cref="T:System.Configuration.ConfigurationElement"/>.
- /// </returns>
- protected override ConfigurationElement CreateNewElement()
- {
- return new TypeProvider() as ConfigurationElement;
- }
- /// <summary>
- /// Gets the element key for a specified configuration element when overridden in a derived class.
- /// </summary>
- /// <param name="element">The <see cref="T:System.Configuration.ConfigurationElement"/> to return the key for.</param>
- /// <returns>
- /// An <see cref="T:System.Object"/> that acts as the key for the specified <see cref="T:System.Configuration.ConfigurationElement"/>.
- /// </returns>
- protected override object GetElementKey(ConfigurationElement element)
- {
- var provider = element as TypeProvider;
- if (provider == null)
- return null;
- return provider.Name;
- }
- /// <summary>
- /// Returns an enumerator that iterates through the collection.
- /// </summary>
- /// <returns>
- /// A <see cref="T:System.Collections.Generic.IEnumerator`1"/> that can be used to iterate through the collection.
- /// </returns>
- public new IEnumerator<ITypeProvider> GetEnumerator()
- {
- int count = base.Count;
- for (int i = 0; i < count; i++)
- {
- yield return (ITypeProvider)base.BaseGet(i);
- }
- }
- }
- }
|