2014-10-20 41 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);