/// <summary>
        /// Allows a client to retrieve all of the configurations to be displayed in a configuration properties window, or for other purposes. All SnapIns should listen for the for the EnumeratingConfigurations event, and add any configurations to the event as needed.
        /// </summary>
        /// <param name="configurations"></param>
        /// <returns></returns>
        public XmlConfiguration[] EnumConfigurations(params XmlConfiguration[] configurations)
        {
            XmlConfigurationManagerEventArgs e = new XmlConfigurationManagerEventArgs(configurations);

            this.OnEnumeratingConfigurations(this, e);
            return(e.Configurations.ToArray());
        }
		/// <summary>
		/// Raises the EnumeratingConfigurations event
		/// </summary>
		/// <param name="sender"></param>
		/// <param name="e"></param>
		private void OnEnumeratingConfigurations(object sender, XmlConfigurationManagerEventArgs e)
		{
			try
			{
				if (this.EnumeratingConfigurations != null)
					this.EnumeratingConfigurations(sender, e);
			}
			catch(System.Exception systemException)
			{
				System.Diagnostics.Debug.WriteLine(systemException);
			}
		}	
 /// <summary>
 /// Raises the EnumeratingConfigurations event
 /// </summary>
 /// <param name="sender"></param>
 /// <param name="e"></param>
 private void OnEnumeratingConfigurations(object sender, XmlConfigurationManagerEventArgs e)
 {
     try
     {
         if (this.EnumeratingConfigurations != null)
         {
             this.EnumeratingConfigurations(sender, e);
         }
     }
     catch (System.Exception systemException)
     {
         System.Diagnostics.Debug.WriteLine(systemException);
     }
 }
		/// <summary>
		/// Allows a client to retrieve all of the configurations to be displayed in a configuration properties window, or for other purposes. All SnapIns should listen for the for the EnumeratingConfigurations event, and add any configurations to the event as needed.
		/// </summary>
		/// <param name="configurations"></param>
		/// <returns></returns>
		public XmlConfiguration[] EnumConfigurations(params XmlConfiguration[] configurations)
		{			
			XmlConfigurationManagerEventArgs e = new XmlConfigurationManagerEventArgs(configurations);
			this.OnEnumeratingConfigurations(this, e);
			return e.Configurations.ToArray();
		}
		/// <summary>
		/// Occurs when the xml configuration manager is enumerating configurations
		/// </summary>
		/// <param name="sender"></param>
		/// <param name="e"></param>
		protected internal virtual void OnConfigurationManagerEnumeratingConfigurations(object sender, XmlConfigurationManagerEventArgs e)
		{
			e.Configurations.Add(new XmlConfiguration[] {_installationEngineConfiguration, _commonConfiguration, _localUserConfiguration});
		}