/// <summary>standard ConvertTo typeconverter code</summary>
        ///<summary>Standard type converter method</summary>
        public override object ConvertTo(ITypeDescriptorContext context, CultureInfo culture, object value, Type destinationType)
        {
            AtomBaseLink link = value as AtomBaseLink;

            if (destinationType == typeof(System.String) && link != null)
            {
                return("Uri: " + link.Uri);
            }

            return(base.ConvertTo(context, culture, value, destinationType));
        }
        /// <summary>parses a baselink object, like AtomId, AtomLogo, or AtomIcon</summary>
        /// <param name="reader"> correctly positioned xmlreader</param>
        /// <param name="baseLink">the base object to set the property on</param>
        /// <returns> </returns>
        protected void ParseBaseLink(XmlReader reader, AtomBaseLink baseLink)
        {
            Tracing.TraceCall();
            Tracing.Assert(reader != null, "reader should not be null");
            if (reader == null)
            {
                throw new ArgumentNullException("reader");
            }

            Tracing.Assert(baseLink != null, "baseLink should not be null");
            if (baseLink == null)
            {
                throw new ArgumentNullException("baseLink");
            }

            ParseBasicAttributes(reader, baseLink);
            if (reader.NodeType == XmlNodeType.Element)
            {
                // read the element content
                baseLink.Uri = new AtomUri(Utilities.DecodedValue(reader.ReadString()));
            }
        }