我想循环一个命名空间下的所有类,并且为每一个类创建一个实力对象出来我知道利用反射可以获得到所有类 但是怎么样获得到类的实例  知道了类型 后再怎么做这个就不知道了求解!

解决方案 »

  1.   

    CreateInstance不就是创建实例对象么。。
    你是想 强制转换?object as 你的类型。。
      

  2.   

    CreateInstance  这个得到的对象是object类型的啊 因为我本身就不知道 这个是什么类型的 怎么样强制转换啊  不可能 假如说这个命名空间下有10000个类 我写那多转换语句吧  这个应该要动态的转换 因为已经知道了这个类的Type  但是不知道怎么样去转...
      

  3.   

    获取一个类无非是想获取其属性和方法。
    何不避开获取类,直接反射其属性和方法呢?
    PropertyInfo 
    MethodInfo 
      

  4.   

    既然是反射,它的实例是某个类型的。你也不能硬编码"(T)obj"这样的。
    看你还要做什么呢?再具体点。
      

  5.   

    Assembly assenbly = Assembly.LoadFile(path);object o= assenbly.CreateInstance("");
    TypeDescriptor.GetProperties(o)["Name"].SetValue(o, "");
      

  6.   

    我现在知道了这个object是什么Type的值 但是不知道怎么去转...
      

  7.   

    因为我现在要做的是  控制控件的Enable
    我传了2个参数进去 Type controltype,object control 
    controltype 就是控件的类型 
    control 就是控件 
    但是不能转换成相应的类型 我获取了所有控件的类型 还有循环判断 还是没办法把control转换成相对应的类型控件怎么弄?
      

  8.   

    如果在页面 就foreach(Control c in this.form1.Controls) switch 判断类型不用转换为控件类型也可以做到property invoke
      

  9.   

     object obj = Activator.CreateInstance<T>();
                    string className = obj.GetType().Name;
                    PropertyInfo[] ps = obj.GetType().GetProperties();
                    foreach (PropertyInfo property in ps)...........
    后面该咋做 你懂的
      

  10.   

    System.Reflection.PropertyInfo ps = control.GetType().GetProperty("Enabled");
    ps.SetValue(control, false, null);原来就是这样的....晕死