如题:
public class 学生
{
private List<课程> listkt;
public List<课程> Listkt
{
get{ return listkt;}
set{listkt=value;}
}
}
public class 课程
{
private string name;
public string Name
{
get;set;
}
}
public class 学生
{
private List<课程> listkt;
public List<课程> Listkt
{
get{ return listkt;}
set{listkt=value;}
}
}
public class 课程
{
private string name;
public string Name
{
get;set;
}
}
var list=Assembly.Load("xxx");
foreach(var item in list){
if(item.SubClass("课程"))
this.Listkt.Add(item.GetConstructor(Type.EmptyTypes).Invoke(null) as 课程);
}
{
private List <课程> listkt;
public List <课程> Listkt
{
get{ return listkt;}
set{listkt=value;}
}
}
public class 课程
{
private string name_temp;
public 课程 (string name)
{
name_temp = name;
}
public string Name
{
get
{
return name_temp;
}
set
{
name_temp= value;
}
}
}学生 student1 = new 学生();
student1.Listkt.Add(new 课程("性教育"));
课程 subject1=new 课程();
课程 subject2=new 课程();
List <课程> mySubject=new List <课程>();
mySubject =typeof(学生).GetProperty("Listkt");
mySubject .add(subject1);
mySubject .add(subject2);
public class 学生
{
private List <课程> listkt;
public List <课程> Listkt
{
get{ return listkt;}
set{listkt=value;}
}
public void SetList(List<课程> mlist)
{
List=mlist;
}
}
假设你有一个实例:
学生 A=new 学生();List<课程> mlist=new List<课程>();//定义List,赋值用。
List.Add()//你自己进行添加,多少随便//用反射方法
MethodInfo mi = A.GetType().GetMethod("SetList");
if (mi != null)
mi.Invoke(p, new object[] {mlist});//传递参数进去这样就利用反射完成了setlist操作
mi.Invoke(p, new object[] {mlist});改为:mi.Invoke(A, new object[] {mlist});
Type t = myObj.GetType();
t.GetProperty("Listkt ").SetValue(myObj,lst,null);