如题:
public class 学生
{
    private List<课程> listkt;
    public List<课程> Listkt
    {
       get{ return listkt;}
       set{listkt=value;}
     }
}
public class  课程
{
    private string name;
    public string Name
     {
       get;set;
     }
}

解决方案 »

  1.   

    为什么要使用反射给List<X>赋值如果要你可以使用 Assembly来做
    var list=Assembly.Load("xxx");
    foreach(var item in list){
      if(item.SubClass("课程"))
        this.Listkt.Add(item.GetConstructor(Type.EmptyTypes).Invoke(null) as 课程);
    }
      

  2.   

    是这样?public class 学生
    {
            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 课程("性教育"));
      

  3.   


    课程 subject1=new 课程();
    课程 subject2=new 课程();
    List <课程> mySubject=new List <课程>();
    mySubject =typeof(学生).GetProperty("Listkt");
    mySubject .add(subject1);
    mySubject .add(subject2);
      

  4.   

    首先,修改 学生类,添加成员函数setList
    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操作
      

  5.   

    这句错了:
    mi.Invoke(p, new object[] {mlist});改为:mi.Invoke(A, new object[] {mlist});
      

  6.   

    Type t = typeof(MyClass);
    Type t = myObj.GetType();
    t.GetProperty("Listkt ").SetValue(myObj,lst,null);