public override object ConvertTo(ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value, Type destinationType)
        {
            if (typeof(string) == destinationType)
            {
                return(((StageName)value).ToString());
            }
            else if (typeof(Errorable <StageName>) == destinationType)
            {
                string strValue = value as string;
                if (strValue != null)
                {
                    try
                    {
                        StageName name = (StageName)strValue;
                        return((Errorable <StageName>)name);
                    }
                    catch (ErrorBase err)
                    {
                        return((Errorable <StageName>)err);
                    }
                    catch (Exception ex)
                    {
                        return((Errorable <StageName>) new InputError(ex.Message));
                    }
                }
            }

            return(base.ConvertTo(context, culture, value, destinationType));
        }
 public Builder(
     StageName pName
     , TreeID pTreeID
     )
 {
     this.Name   = pName;
     this.TreeID = pTreeID;
 }