我必须编写一个函数,其中Name作为Parameter to function,它在string中。所以我需要创建这个类名的实例。
createInstance(string ClassName){
.............
//Here i Need to create instance of ClassName,
.............
}
答案 0 :(得分:4)
Activator.CreateInstance(Type.GetType(ClassName));
答案 1 :(得分:2)
Type t = Assembly.GetType(className);
Activator.CreateInstance(t);
仅当T是公共类型且具有无参数的公共构造函数时才有效。但这就是模式,它也可以在其他情况下工作。
答案 2 :(得分:1)
正如大家告诉你的那样,你必须得到你想要的类型,然后以这种方式将它传递给Activator的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)