C#反射泛型赋值问题求支援求助攻

Mike老羊 2014-09-11 03:13:23
我通过反射创建了一个对像,这个对像里面有个属性是泛型的,我又动态的创建了这个对像,请问我要怎么给这个泛型的对像赋值了?求支援求助攻
...全文
205 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
Mike老羊 2014-09-11
  • 打赏
  • 举报
回复
if ((item.PropertyType.IsGenericType) && (column.SubItems != null)) { Type ftype = value.GetType(); var slistobj = CreateObject(column.SubItems.Assembly, column.SubItems.Type, true); Type ssType = slistobj.GetType(); MethodInfo method = ssType.GetMethod("Add"); BindingFlags flag = BindingFlags.Public; //List<object> liobj = new List<object>(); _tobj = CreateObject(column.SubItems.Assembly, column.SubItems.Type); int count = Convert.ToInt32(ftype.GetProperty("Count").GetValue(value, null)); object[] arrobj=new object[count]; for (int i = 0; i < count; i++) { object listItem = ftype.GetProperty("Item").GetValue(value, new object[] { i }); GetSubItem(column.SubItems, listItem, ref _tobj, listItem.GetType(), _tobj.GetType()); object[] parameters = new object[1]; parameters[0] = _tobj; Object robj = method.Invoke(slistobj, flag, Type.DefaultBinder, parameters, null); //GetSubItem(column.SubItems, listItem, ref _tobj, listItem.GetType(), _tobj.GetType()); //GetSubItem(column.SubItems, listItem, ref slistobj, listItem.GetType(), _tobj.GetType()); //arrobj[i] = listItem; //liobj.Add(_tobj); //liobj.Add(ss); //item.SetValue(Tobj, listItem,null; } item.SetValue(Tobj, slistobj, null); }
Mike老羊 2014-09-11
  • 打赏
  • 举报
回复
我的所有对像都是用反射创建的不能用上面的方法
lzp3438034 2014-09-11
  • 打赏
  • 举报
回复
泛型<你定义的类型> p = o as 泛型<你定义的类型>; p.add();
sunny906 2014-09-11
  • 打赏
  • 举报
回复
object o= t.GetProperty(propertyname).GetValue()obj,null; 泛型<你定义的类型> p = o as 泛型<你定义的类型>;

110,555

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧