我新建一个类
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,为什么???
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,为什么???
Type.GetType("aaa.Class2")
少了一个a?
可能没有找到你的程序集dll,所以GetType返回null。试一下用这个方法,我在写重dll加载类的时候用过。 public static ObjectHandle CreateInstance (
string assemblyName,
string typeName
)
ObjectHandle obj = System.Activator.CreateInstance("ObjectHandleAssembly", "MyType"); MyType testObj = (MyType)obj.Unwrap();
你可以用Activator..::.CreateInstance (String, String) (还有其他的好多方法)直接创建实例啊
Activator.CreateInstance (String, String)
创建了对象,测试可以
但是为什么在我的webServerice上面不能创建
那样这个Type要序列化,本来再得到的
{
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的程序集.
我是用Activator.CreateInstance (String, String) 创建的