表达不清楚的话,句举个例子如下
string pp = "System.Int64";
string pp2 = "Test.show";//自己的命名空间下的类,
string pp3 = "System.String "; Type MyType=// 怎么将pp ,pp2pp3,转为对应类,这里Type 只是表明一个情况,用Type ,
List < MyType > dd = new List<MyType>();
因为在使用List 时候里面的泛型要确定,现在只能获取该类型对应的字符串,怎么转为对应的类型。
string pp = "System.Int64";
string pp2 = "Test.show";//自己的命名空间下的类,
string pp3 = "System.String"; Type type1 = Type.GetType(pp);
Type type2 = Type.GetType(pp2);
Type type3 = Type.GetType(pp3); Console.WriteLine(type1.Name);
Console.WriteLine(type2.Name);
Console.WriteLine(type3.Name);
string pp = "System.Int64";
Type t = Type.GetType("System.Collections.Generic.List`1[[" + pp + "]]");
object obj = Activator.CreateInstance(t);
IList list = obj as IList;
list.Add(1L);
list.Add(2L);
foreach (var i in list)
Console.WriteLine(i);
Type t = Type.GetType("System.Collections.Generic.List`1[[" + pp + "]]");
object obj = Activator.CreateInstance(t); 就是我要的。
怎么把他 变成一个能用的类型, var ddd = 去转 grp.gfmis.trui.showData
能让这样的 IList<ddd > pp
我要的目的是 ,去转换grp.gfmis.trui.showData为一个类型ddd,ddd这个类型在 IList中能直接的用
怎么反射 能给个例子吗? 我就是要这个类型啊 ,放在Ilist 类型中啊。
var t = dgvtable.DataSource.GetType();
var myTpye = t.GetGenericArguments()[0];//获取类型Type SetType = Type.GetType("System.Collections.Generic.List`1[[" + myTpye + "]]");
object obj = Activator.CreateInstance(SetType);
IList list = obj as IList;
IList<obj > pp = dgvtable.DataSource as IList<obj >;
1 笨的办法,如果需求是明确的,可以用枚举
switch (typeName)
{
case "System.String":
list<string> list = new list<string>();
.....
}2 为什么不用 List<T> list= new List()?
var t = dgvtable.DataSource.GetType();
var myTpye = t.GetGenericArguments()[0];//获取类型
IList<object> ls = new List<object>();Type SetType = Type.GetType("System.Collections.Generic.List[[" + myTpye + "]]");
object obj = Activator.CreateInstance(SetType);
foreach(赋值)
foreach (System.Reflection.PropertyInfo pi in SetType.GetProperties())
{
pi.SetValue("属性名",值);
}
ls.add(pi);
}