public override object ConvertFrom(ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value)
        {
            string strValue = value as string;

            if (strValue != null)
            {
                return(CommitID.TryParse(strValue).Value);
            }

            return(base.ConvertFrom(context, culture, value));
        }
        public override object ConvertTo(ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value, Type destinationType)
        {
            if (typeof(string) == destinationType)
            {
                return(((CommitID)value).ToString());
            }
            else if (typeof(Errorable <CommitID>) == destinationType)
            {
                string strValue = value as string;
                if (strValue != null)
                {
                    return(CommitID.TryParse(strValue));
                }
            }

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