예제 #1
0
        /// <summary>
        /// 枚举值
        /// </summary>
        /// <param name="type"></param>
        /// <param name="text"></param>
        /// <returns></returns>
        public static object GetEnum(Model.Enum type, string text)
        {
            var field = type.FindFieldByName(text);

            if (field != null)
            {
                return(field.ID);
            }

            int intID = 0;

            if (int.TryParse(text, out intID))
            {
                field = type.FindFieldByID(intID);
                if (field != null)
                {
                    return(field.ID);
                }
            }

            double doubleID = 0;

            if (double.TryParse(text, out doubleID))
            {
                field = type.FindFieldByID((int)doubleID);
                if (field != null)
                {
                    return(field.ID);
                }
            }

            return(null);
        }
예제 #2
0
        /// <summary>
        /// 枚举
        /// </summary>
        /// <param name="type"></param>
        /// <param name="cell"></param>
        /// <param name="error"></param>
        /// <returns></returns>
        private object GetEnum(Model.Enum type, ICell cell, List <string> errors)
        {
            object result = null;

            if (cell.CellType == CellType.Numeric)
            {
                var field = type.FindFieldByID((int)cell.NumericCellValue);
                if (field != null)
                {
                    result = field.ID;
                }
            }
            else if (cell.CellType == CellType.String)
            {
                var field = type.FindFieldByName(cell.StringCellValue);
                if (field != null)
                {
                    result = field.ID;
                }
            }

            if (result == null)
            {
                errors.Add("无效的枚举值");
            }

            return(result);
        }