使用字符串作为类名动态初始化类

时间:2014-10-20 09:44:22

标签: c#

我是C#的新手并编写了一些自动化框架。我想根据条件动态初始化一个类。

我根据条件将类的名称作为字符串。 例如:“车辆_”+ typeOfvehicle =>运行时间可能是Vehicle_2Wheeler或Vehicle_3Wheeler或Vehicle_4Wheeler。

我现在正在使用if,else语句。但是如果我可以用我想要动态的类的类来初始化类,那就更好了。

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

如果有人对此有所了解,请告诉我。

1 个答案:

答案 0 :(得分:3)

在C#Type.GetType(“Truck”)中将返回一个你可以实例化的Type

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

虽然如果你在编译时不知道具体的类型,请不要使用对象,动态或基类。

传递args:

Activator.CreateInstance(type, arg1, arg2);