System.UriTypeConverter.ConvertTo C# (CSharp) Method

ConvertTo() public method

public ConvertTo ( ITypeDescriptorContext context, CultureInfo culture, object value, Type destinationType ) : object
context ITypeDescriptorContext
culture CultureInfo
value object
destinationType Type
return object
        public override object ConvertTo(ITypeDescriptorContext context, CultureInfo culture, object value, Type destinationType)
        {
            Uri uri = value as Uri;

            if (uri != null && destinationType == typeof(InstanceDescriptor))
            {
                ConstructorInfo ci = typeof(Uri).GetConstructor(BindingFlags.Public | BindingFlags.Instance, null, new Type[]{typeof(string), typeof(UriKind)}, null);
                return new InstanceDescriptor(ci, new object[] { uri.OriginalString,
                    m_UriKind == UriKind.RelativeOrAbsolute ? uri.IsAbsoluteUri ? UriKind.Absolute : UriKind.Relative : m_UriKind });
            }

            if (uri != null && destinationType == typeof(string))
                return uri.OriginalString;

            if (uri != null && destinationType == typeof(Uri))
                return new Uri(uri.OriginalString,
                    m_UriKind == UriKind.RelativeOrAbsolute ? uri.IsAbsoluteUri ? UriKind.Absolute : UriKind.Relative : m_UriKind);

            return base.ConvertTo(context, culture, value, destinationType);
        }
        //