用了
        private void a(string pClass)
        {
            Type t = Type.GetType(pClass, true, true);
         }失败了pClass类名怎么才能实现:类名做为变量,且创建这个类?

解决方案 »

  1.   


     object CreateObject(Type t)
        {
            return System.Activator.CreateInstance(t);
        }  protected void Page_Load(object sender, EventArgs e)
        {        object o = CreateObject(typeof(Int32));
            Response.Write(o.ToString());      
        }
      

  2.   

    object CreateObject(Type t)
        {
            return System.Activator.CreateInstance(t);
        }  protected void Page_Load(object sender, EventArgs e)
        {        object o = CreateObject(typeof(Int32));
            Response.Write(o.ToString());      
        }(慕白兄) 的正确
      

  3.   

    请问typeof(名)   必须知道完整的类名,我这个名字是个变量传过来的,我怎么得到这个类呢
      

  4.   


    typeof(名).GetType().FullName
    这个就是你的完整的类名,它包含你的class所在的命名空间的
      

  5.   

    跨工程的你要先将类编译为DLL,然后用反射。
    http://topic.csdn.net/u/20100223/19/5959efa0-09c9-4ba3-9f88-3a58c98bde44.html            System.Reflection.Assembly asm = System.Reflection.Assembly.LoadFrom("dll的路径要是全路径");
                object o = asm.CreateInstance("类名");
    类名也是要完整的类名,编译后的DLL也可以直接就“添加引用”,这样就可以直接new了
      

  6.   

    问题只是Type.GetType的字符类名的问题。如果是系统的或同一程序集的,可以用类全名:命名空间.类名,如
    Type.GetType("System.String");如果是其他程序集的,需要加上dll文件名(不含.dll)。把生成的dll放到程序运行目录。以下举例将my.Entity.dll拷贝到运行目录bin/debug目录下,取User类
    Type type = Type.GetType("my.Entity.User,my.Entity");留意后面的“...,my.Entity”