/// <summary>
        /// Writes an Xml element containing AutoUpdateProductDescriptor specified
        /// </summary>
        /// <param name="product"></param>
        protected virtual void WriteProductDescriptor(AutoUpdateProductDescriptor product)
        {
            Debug.Assert(product != null);

            // start the element
            _writer.WriteStartElement(product.GetType().Name);

            XmlWriterUtils.WriteAttributes(_writer,
                                           new XmlStringPair("Version", product.Version.ToString()),
                                           new XmlStringPair("RequiresRegistration", product.RequiresRegistration.ToString()),
                                           new XmlStringPair("Id", product.Id)
                                           );

            XmlWriterUtils.WriteCDataElement(_writer, "Name", product.Name, null);

            // end the element
            _writer.WriteEndElement();
        }
        /// <summary>
        /// Writes an Xml element containing AutoUpdateProductDescriptor specified
        /// </summary>
        /// <param name="product"></param>
        private void WriteProductDescriptor(AutoUpdateProductDescriptor product)
        {
            if (product == null)
            {
                throw new ArgumentNullException("product");
            }

            // start the element
            _writer.WriteStartElement(product.GetType().Name);

            XmlWriterUtils.WriteAttributes(_writer,
                                           new XmlStringPair("Version", product.Version.ToString()),
                                           new XmlStringPair("RequiresRegistration", product.RequiresRegistration.ToString()),
                                           new XmlStringPair("Id", product.Id)
                                           );

            XmlWriterUtils.WriteCDataElement(_writer, "Name", product.Name, null);

            // end the element
            _writer.WriteEndElement();
        }
		/// <summary>
		/// Writes an Xml element containing AutoUpdateProductDescriptor specified
		/// </summary>
		/// <param name="product"></param>
		private void WriteProductDescriptor(AutoUpdateProductDescriptor product)
		{
			if (product == null)
				throw new ArgumentNullException("product");

			// start the element
			_writer.WriteStartElement(product.GetType().Name);

			XmlWriterUtils.WriteAttributes(_writer,
				new XmlStringPair("Version", product.Version.ToString()),
				new XmlStringPair("RequiresRegistration", product.RequiresRegistration.ToString()),
				new XmlStringPair("Id", product.Id)
				);
			
			XmlWriterUtils.WriteCDataElement(_writer, "Name", product.Name, null);

			// end the element
			_writer.WriteEndElement();
		}