/// <summary>
		/// Initializes a new instance of the AddressBookList class
		/// </summary>
		/// <param name="addressBooks"></param>
		public AddressBookList(AddressBookList list) : this()
		{
			if (list == null)
				throw new ArgumentNullException("AddressBookList", "A null reference to an AddressBookList cannot be used to create a new list.");

			foreach(AddressBook addressBook in list)
				this.Add(addressBook);
		}
        /// <summary>
        /// Initializes a new instance of the AddressBookList class
        /// </summary>
        /// <param name="addressBooks"></param>
        public AddressBookList(AddressBookList list) : this()
        {
            if (list == null)
            {
                throw new ArgumentNullException("AddressBookList", "A null reference to an AddressBookList cannot be used to create a new list.");
            }

            foreach (AddressBook addressBook in list)
            {
                this.Add(addressBook);
            }
        }
		/// <summary>
		/// Initializes a new instance of the AddressBookDirectory class
		/// </summary>
		public AddressBookDirectory()
		{
			_books = new AddressBookList();	
			_books.Changed += new AddressingEventHandler(this.OnChanged);
			_books.Parent = this;
		}
		/// <summary>
		/// Deserializes the address book directory
		/// </summary>
		/// <param name="info"></param>
		/// <param name="context"></param>
		public AddressBookDirectory(SerializationInfo info, StreamingContext context) : this()
		{			
			_name = (string)info.GetValue("Name", typeof(string));
			_books = (AddressBookList)info.GetValue("Books", typeof(AddressBookList));
		}
 /// <summary>
 /// Initializes a new instance of the AddressBookDirectory class
 /// </summary>
 public AddressBookDirectory()
 {
     _books          = new AddressBookList();
     _books.Changed += new AddressingEventHandler(this.OnChanged);
     _books.Parent   = this;
 }
 /// <summary>
 /// Deserializes the address book directory
 /// </summary>
 /// <param name="info"></param>
 /// <param name="context"></param>
 public AddressBookDirectory(SerializationInfo info, StreamingContext context) : this()
 {
     _name  = (string)info.GetValue("Name", typeof(string));
     _books = (AddressBookList)info.GetValue("Books", typeof(AddressBookList));
 }