有批量数据给反射出来的实体类赋值的优化问题
我的代码如下
这里对每个<T> 都反射了一次 , 我感觉这种方法很差
有没有更好的方法?
C# code
这里对每个<T> 都反射了一次 , 我感觉这种方法很差
有没有更好的方法?
C# code
//输出的ModelList System.Collections.Generic.List<T> list = new System.Collections.Generic.List<T>(); foreach (Model.LanguageCode co in langmodelist) { Type type = typeof(T); T t = Activator.CreateInstance<T>(); PropertyInfo[] pi = type.GetProperties(); //获取属性Length int listcount = 0; //保存属性名 List<string> PropertyName = new List<string>(); //保存属性值 List<string[]> PropertyValue = new List<string[]>(); //获取输入 foreach (PropertyInfo p in pi) { if (form[co.Language_code + p.Name] != null) { string[] value = form[co.Language_code + p.Name].Split(','); PropertyName.Add(p.Name); PropertyValue.Add(value); if (listcount == 0) { listcount = value.Length; } } } T tt =null; //根据length得到ModelList for (int i = 0; i < listcount; i++) { tt = Activator.CreateInstance<T>(); PropertyInfo[] pis = type.GetProperties(); // foreach (PropertyInfo p in pis) { if (Attribute.GetCustomAttribute(p, typeof(Model.LanguageFieldAttribute)) != null) { p.SetValue(tt, ChangeType(co.Language_code, p.PropertyType), null); } //name对应的string[]索引号 int j = PropertyName.FindIndex(delegate(string s) { return s == p.Name; }); if (j >= 0) { try { p.SetValue(tt, ChangeType(PropertyValue[j][i], p.PropertyType), null); } catch { } } } } list.Add(tt); }
作者: ayun00 发布时间: 2011-06-16
有人来吗?
作者: ayun00 发布时间: 2011-06-16