C#如何通过类名获取类,并进行相应的操作?
比如DataGrid列表控件有个数据源ItemSource=listA,DataGrid的Typestring属性(我自定义的)值为ClassA,也就是listA的数据类...
比如DataGrid列表控件有个数据源ItemSource=listA, DataGrid的Typestring属性(我自定义的)值为ClassA, 也就是listA的数据类型. 现在怎么把listA转换成类型为List<ClassA>的一个列表, 因为Typestring可能任意的一个类的类名, 所以需要一个通用的方法, 请大神指点啊
展开
3个回答
2013-07-17
展开全部
只有类名是不够的,要有程序集限定名称,例如:System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089。
然后这样做:
Type tp = Type.GetType(String.Format("System.Collections.Generic.List`1[{0}]",Typestring));
dynamic obj = Activator.CreateInstance(tp);
obj.Clear();
等等。
然后这样做:
Type tp = Type.GetType(String.Format("System.Collections.Generic.List`1[{0}]",Typestring));
dynamic obj = Activator.CreateInstance(tp);
obj.Clear();
等等。
追问
谢谢!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
问得不够清楚。
ItemSource=listA,listA是不是一个确定的类型?
Typestring属性,大概是什么样?
listA转换成类型为List<ClassA>的一个列表,念不通顺。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
typeof(类名) 不知道是不是你要的东西
追问
不行,得到就是System.String,因为类名就是一个字符串
追答
哦,那你用反射,先找到对应程序集,再找类
反射是个大概念,最好系统地看一下,再下手
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询