2014-10-20 82 views
1

我是C#的新手,并且编写了一些自动化框架。我想根据条件动态地初始化一个类。使用字符串作为类名动态初始化类

我根据条件以字符串的形式获取类的名称。 例如:“Vehicle _”+ typeOfvehicle =>运行时可能是Vehicle_2Wheeler或Vehicle_3Wheeler或Vehicle_4Wheeler。

我现在使用if,else语句。但是,如果我可以初始化类的类型,我想要动态它会更好。

我想我需要使用Reflection API,但不知道如何实现这一点。

请让我知道,如果有人有这个想法。

回答

3

在C#Type.GetType(“卡车”)将返回一个类型,然后可以实例化

var type = Type.GetType("MyProject.Truck"); 
var instance = (Vehicle)Activator.CreateInstance(type); 

但如果你不知道在编译时的具体类型,离开过剧组,和只需使用对象,动态或基类即可。

要通过ARGS:

Activator.CreateInstance(type, arg1, arg2);