我必须编写一个函数,类名为Parameter作为函数,它是字符串。所以我需要创建这个类名的实例。只有如何从提供类名称的字符串创建实例?
createInstance(string ClassName){
.............
//Here i Need to create instance of ClassName,
.............
}
我必须编写一个函数,类名为Parameter作为函数,它是字符串。所以我需要创建这个类名的实例。只有如何从提供类名称的字符串创建实例?
createInstance(string ClassName){
.............
//Here i Need to create instance of ClassName,
.............
}
Activator.CreateInstance(Type.GetType(ClassName));
Type t = Assembly.GetType(className);
Activator.CreateInstance(t);
工作,如果T是一个公共类型,并具有无参数,公共构造函数。但是,这是模式,它可以在其他情况下工作。
大家都告诉你,你必须得到你正在寻找的类型,然后将它传递给激活的CreateInstance方法以这样的方式
Type t = Type.GetType(className);
Activator.CreateInstance(t);
只是要小心这样的事实:如果传递给GetType作为你试图实例化的类的完整名称(例如“MyNamespace.Foo”),则只有在与搜索类相同的程序集内调用该类时,它才返回类型,否则返回null。
如果你想拥有它是一个通用的组件,你必须使用AssemblyQualifiedName工种(看看这里的细节:http://msdn.microsoft.com/en-us/library/system.type.assemblyqualifiedname.aspx)
类型T = Assembly.GetType(类名);这里如果我使用className作为字符串它显示错误 – sandeep