Ejemplo n.º 1
0
        /// <summary>
        ///  读取From表单中的某一组值
        /// </summary>
        /// <typeparam name="TValue"></typeparam>
        /// <param name="name"></param>
        /// <returns></returns>
        public static List <TValue> GetFormValues <TValue>(string name)
        {
            List <TValue> list = new List <TValue>();

            string[] values = HttpContext.Current.Request.Form.GetValues(name);
            if (values != null)
            {
                foreach (string value in values)
                {
                    list.Add(ConvertKit.Convert(value, default(TValue)));
                }
            }
            return(list);
        }
        public static IDictionary <TKey, string> ToDescriptionDictionary <TKey>(Type enumType)
        {
            string cacheKey = "CACHE_ENUM_KEYVALUE_" + enumType.FullName.ToUpper() + "_" + typeof(TKey).ToString().ToUpper();

            var dictionary = HttpContext.Current.Cache[cacheKey] as Dictionary <TKey, string>;

            if (dictionary == null)
            {
                dictionary = new Dictionary <TKey, string>();
                object      enumInstance = enumType.Assembly.CreateInstance(enumType.FullName);
                FieldInfo[] fieldInfos   = enumType.GetFields();

                foreach (FieldInfo fieldInfo in fieldInfos)
                {
                    var descriptionAttributes = (DescriptionAttribute[])fieldInfo.GetCustomAttributes(typeof(DescriptionAttribute), true);

                    if (descriptionAttributes.Length > 0)
                    {
                        TKey   key   = ConvertKit.Convert(fieldInfo.GetValue(enumInstance), default(TKey));
                        string value = descriptionAttributes[0].Description;

                        if (!dictionary.ContainsKey(key))
                        {
                            dictionary.Add(key, value);
                        }
                    }
                }
                HttpContext.Current.Cache.Insert(cacheKey, dictionary);
            }
            var result = new OptimizedDictionary <TKey, string>();

            foreach (var kvp in dictionary)
            {
                result.Add(kvp.Key, kvp.Value);
            }
            return(result);
        }