我新建一个类
namespace aaaa
{
    public class Class2
    {
        public static string a = "aaaaaa";
        public static string b = "bbbbbb";        public string returnA()
        {
            return "AAAA1111RETURN";
        }
    }
}现在想动态生成一个该类的对象,用方法
object t = System.Activator.CreateInstance(Type.GetType("aaa.Class2"));但
Type.GetType("aaa.Class2")返回的总是NULL,为什么???

解决方案 »

  1.   

    namespace aaaa
    Type.GetType("aaa.Class2")
     少了一个a?
      

  2.   

    我是动态生成的,不能写死,因为aaa.Class2是从表里取出来的类型,
      

  3.   


    可能没有找到你的程序集dll,所以GetType返回null。试一下用这个方法,我在写重dll加载类的时候用过。 public static ObjectHandle CreateInstance (
    string assemblyName,
    string typeName
    )
      

  4.   

    补充一下,返回值是ObjectHandle 。这样取回原来的对象:
    ObjectHandle obj = System.Activator.CreateInstance("ObjectHandleAssembly", "MyType");      MyType testObj = (MyType)obj.Unwrap();
      

  5.   

    Type.GetType需要的是已经加载的程序集,你这样用是不行的。
    你可以用Activator..::.CreateInstance (String, String) (还有其他的好多方法)直接创建实例啊
      

  6.   

    在客户端上用
    Activator.CreateInstance (String, String) 
    创建了对象,测试可以
    但是为什么在我的webServerice上面不能创建
      

  7.   

    webservice和一般类操作一样的,你是不是想webservice动态创建,本地获取?
    那样这个Type要序列化,本来再得到的
      

  8.   

    namespace aaaa 

        public class Class2 
        { 
            public static string a = "aaaaaa"; 
            public static string b = "bbbbbb";         public string returnA() 
            { 
                return "AAAA1111RETURN"; 
            } 
        } 
    } 和
    object t = System.Activator.CreateInstance(Type.GetType("aaa.Class2")); 
    位于同一个程序集中吗?如果不是,则还需要加载包含Class2的程序集.
      

  9.   

    我已经创建了,不在一个程序集,即使加载了也不可以
    我是用Activator.CreateInstance (String, String) 创建的