/// <summary>
 /// Inicializa o listener.
 /// </summary>
 /// <param name="listener"></param>
 internal void InitializeListener(GDATraceListener listener)
 {
     if (listener == null)
     {
         throw new ArgumentNullException("listener");
     }
 }
 /// <summary>
 /// Adiciona o listener na posição informada.
 /// </summary>
 /// <param name="index"></param>
 /// <param name="listener"></param>
 public void Insert(int index, GDATraceListener listener)
 {
     this.InitializeListener(listener);
     lock (GDATraceInternal._critSec)
     {
         this._list.Insert(index, listener);
     }
 }
        /// <summary>
        /// Remove o listener com o nome informado.
        /// </summary>
        /// <param name="name"></param>
        public void Remove(string name)
        {
            GDATraceListener listener = this[name];

            if (listener != null)
            {
                ((IList)this).Remove(listener);
            }
        }
        void IList.Insert(int index, object value)
        {
            GDATraceListener listener = value as GDATraceListener;

            if (listener == null)
            {
                throw new ArgumentException("MustAddListener", "value");
            }
            this.InitializeListener(listener);
            lock (GDATraceInternal._critSec)
            {
                this._list.Insert(index, value);
            }
        }
        int IList.Add(object value)
        {
            GDATraceListener listener = value as GDATraceListener;

            if (listener == null)
            {
                throw new ArgumentException("MustAddListener", "value");
            }
            this.InitializeListener(listener);
            lock (GDATraceInternal._critSec)
            {
                return(this._list.Add(value));
            }
        }
 /// <summary>
 /// Recupera o listener na posição informada.
 /// </summary>
 /// <param name="index"></param>
 /// <returns></returns>
 object IList.this[int index]
 {
     get
     {
         return(this._list[index]);
     }
     set
     {
         GDATraceListener listener = value as GDATraceListener;
         if (listener == null)
         {
             throw new ArgumentException("MustAddListener", "value");
         }
         this.InitializeListener(listener);
         this._list[index] = listener;
     }
 }
 /// <summary>
 /// Remove o listener informado.
 /// </summary>
 /// <param name="listener"></param>
 public void Remove(GDATraceListener listener)
 {
     ((IList)this).Remove(listener);
 }
 /// <summary>
 /// Recupera o indice do listener na coleção.
 /// </summary>
 /// <param name="listener"></param>
 /// <returns></returns>
 public int IndexOf(GDATraceListener listener)
 {
     return(((IList)this).IndexOf(listener));
 }
 /// <summary>
 /// Verifica se na coleção possui o listener informado.
 /// </summary>
 /// <param name="listener"></param>
 /// <returns></returns>
 public bool Contains(GDATraceListener listener)
 {
     return(((IList)this).Contains(listener));
 }
 /// <summary>
 /// Adiciona um listener para a coleção.
 /// </summary>
 /// <param name="listener"></param>
 /// <returns></returns>
 public int Add(GDATraceListener listener)
 {
     this.InitializeListener(listener);
     lock (GDATraceInternal._critSec)
         return(this._list.Add(listener));
 }