我有一个具有此结构的xml文件
<graph>
<id>0</id>
<name>John</name>
<link>http://test.com</link>
</graph>
<graph>
<id>1</id>
<name>Roger</name>
<link>http://test2.com</link>
</graph>
我想使用Reflection.Emit类来创建两个类 第一:
class A {
int id;
string name;
string link
}
第二
Class B{
List<A> graphs;
}
我读过这篇论文(Introduction to Creating Dynamic Types with Reflection.Emit)并且可以在运行时创建A类但问题是在另一个运行时类(B)中使用这个(A)并且还有一个A的列表。
MyClassBuilder MCB=new MyClassBuilder("A");
var myclass = MCB.CreateObject(new string[3] { "id", "name", "link" }, new Type[3] { typeof(int), typeof(string), typeof(string) });
Type TP = myclass.GetType();
MyClassBuilder MCB1=new MyClassBuilder("B");
//Here is my confusion typeof(List<TP>) ?????? Error Ocurred
var myclass2 = MCB1.CreateObject(new string[1] {"graphs"}, new Type[1]{typeof(List<TP>)});
//set value of class A and work
object tp = Activator.CreateInstance(TP);
TP.GetProperty("id").SetValue(tp,0);
TP.GetProperty("name").SetValue(tp,"Joh");
TP.GetProperty("link").SetValue(tp,"http://test.com");
//set value of class B ??????
//add tp in graphs