File: net\System\Net\mail\AlternateViewCollection.cs
Project: ndp\fx\src\System.csproj (System)
using System;
using System.Collections.ObjectModel;
 
namespace System.Net.Mail
{
    public sealed class AlternateViewCollection : Collection<AlternateView>, IDisposable
    {
        bool disposed = false;
 
        internal AlternateViewCollection()
        {  }
 
        public void Dispose()
        {
            if (disposed) {
                return;
            }
 
            foreach (AlternateView view in this)
            {
                view.Dispose();
            }
            Clear();
            disposed = true;
        }
 
        protected override void RemoveItem(int index){
            if (disposed) {
                throw new ObjectDisposedException(this.GetType().FullName);
            }
 
            base.RemoveItem(index);
        }
        
        protected override void ClearItems(){
            if (disposed) {
                throw new ObjectDisposedException(this.GetType().FullName);
            }
 
            base.ClearItems();
        }
 
 
        protected override void SetItem(int index, AlternateView item){
            if (disposed) {
                throw new ObjectDisposedException(this.GetType().FullName);
            }
              
            
            if(item==null) {
                throw new ArgumentNullException("item");
            }
    
            base.SetItem(index,item);
        }
        
        protected override void InsertItem(int index, AlternateView item){
            if (disposed) {
                throw new ObjectDisposedException(this.GetType().FullName);
            }
              
            if(item==null){
                 throw new ArgumentNullException("item");
            }
    
            base.InsertItem(index,item);
        }
    }
}