Example #1
0
 private static bool TryConvertToSpecialValues(object value, Type targetType, CultureInfo culture, out object result)
 {
     result = null;
     if (value is string && ((string)value).Length == 0)
     {
         result = ChoTypeEx.Default(targetType);
         return(true);
     }
     if (targetType.IsEnum)
     {
         if (value is string)
         {
             result = Enum.Parse(targetType, value as string);
             if (Enum.IsDefined(targetType, result))
             {
                 return(true);
             }
             else
             {
                 return(false);
             }
         }
         else
         {
             result = Enum.ToObject(targetType, value);
             if (Enum.IsDefined(targetType, result))
             {
                 return(true);
             }
             else
             {
                 return(false);
             }
         }
     }
     else
     {
         if (value is string && targetType == typeof(Guid))
         {
             result = (object)new Guid(value as string);
             return(true);
         }
         else if (value is string && targetType == typeof(Version))
         {
             result = (object)new Version(value as string);
             return(true);
         }
         else if (targetType == typeof(string))
         {
             result = value.ToString();
             return(true);
         }
         else
         {
             result = ChoString.ToObjectInternal(value as string, targetType);
             return(true);
         }
     }
 }