예제 #1
0
        public static object ToObject(string inString)
        {
            if (inString == null || inString.Trim().Length == 0)
            {
                return(null);
            }

            ChoTypeObjectParseInfo[] typeObjectsInfo = ChoTypesManager.GetTypeObjectsParseInfo();

            foreach (ChoTypeObjectParseInfo typeObjectInfo in typeObjectsInfo)
            {
                if (typeObjectInfo.CheckParse(inString))
                {
                    return(typeObjectInfo.Parse(inString));
                }
            }

            if (inString.IsInteger())
            {
                int intValue;

                if (Int32.TryParse(inString, out intValue))
                {
                    return(intValue);
                }

                long longValue;
                if (Int64.TryParse(inString, out longValue))
                {
                    return(longValue);
                }

                double doubleValue;
                if (Double.TryParse(inString, out doubleValue))
                {
                    return(doubleValue);
                }

                return(inString);
            }
            else if (inString.IsNumber())
            {
                return(double.Parse(inString));
            }
            else
            {
                return(inString);
            }
        }
예제 #2
0
        internal static object ToObjectInternal(string inString, Type targetType = null)
        {
            if (inString == null || inString.Trim().Length == 0)
            {
                return(null);
            }

            if (targetType != null && ChoTypesManager.TypeObjectsParseInfo.ContainsKey(targetType))
            {
                ChoTypeObjectParseInfo typeObjectInfo1 = ChoTypesManager.TypeObjectsParseInfo[targetType];
                if (typeObjectInfo1 == null)
                {
                    return(inString);
                }
                if (typeObjectInfo1.CheckParse(inString))
                {
                    return(typeObjectInfo1.Parse(inString));
                }
                else
                {
                    return(inString);
                }
            }

            ChoTypeObjectParseInfo[] typeObjectsInfo = ChoTypesManager.GetTypeObjectsParseInfo();

            foreach (ChoTypeObjectParseInfo typeObjectInfo in typeObjectsInfo)
            {
                if (typeObjectInfo.CheckParse(inString))
                {
                    return(typeObjectInfo.Parse(inString));
                }
            }

            return(inString);
        }