知道类名后,通过反射用Type创建的对象都是object类型的,怎么才能真正得到这个类的实例呢,请教下

解决方案 »

  1.   

    参考一下:
    System.Reflection.Assembly ass = System.Reflection.Assembly.LoadFile((string)tsi.Tag);
                    Type type = null;
                    Type[] typeList = ass.GetTypes();
                    foreach (Type t in typeList)
                    {
                        if (t.IsClass && t.GetInterface(typeof(NoteNet.PlugIn.Interface.INoteNetPlugIn).FullName, true) != null)
                        {
                            type = t;
                            break;
                        }
                    }                if (type != null)
                    {
                        NoteNet.PlugIn.Interface.INoteNetPlugIn pobj = (NoteNet.PlugIn.Interface.INoteNetPlugIn)ass.CreateInstance(type.FullName, true);
                        pobj.ShowPlugInOperateForm(this, new NoteNet.PlugIn.Interface.Module.NoteDataInfoModule());
                    }
      

  2.   

    object is 你的对象  
      

  3.   

    as 才对
    强制转换了,结果是null,这是怎么个情况
      

  4.   

    Activator.CreateInstance(typeof(...));
      

  5.   

    IObject obj1=(IObject)Activator.CreateInstance(System.Type.GetType ("ActivatorCreateInstance.ClassExam"));
      

  6.   

    private void button1_Click(object sender, EventArgs e)
            {
                Type type = typeof(Form2);            Form2 obj2 = (Form2)Activator.CreateInstance(type, new string[] {});
            }
      

  7.   

    (接口)Assembly.Load(路径).CreateInstance(类名)
    试下
      

  8.   

    创建不成功或转换为不兼容的类型了,如果不在同一程序集中,需要先Load程序集,然后再创建,看11楼