在命名空間中,我有任意數量的類來實現接口IModel。給定一個類的名字作爲一個字符串,我想實例化這個類並將結果對象存儲在一個IModel類型的變量中。從字符串定義的類創建實例
由於我沒有反思的經驗,我沒有弄清楚如何去做。
在命名空間中,我有任意數量的類來實現接口IModel。給定一個類的名字作爲一個字符串,我想實例化這個類並將結果對象存儲在一個IModel類型的變量中。從字符串定義的類創建實例
由於我沒有反思的經驗,我沒有弄清楚如何去做。
你不需要思考在這裏 - 使用Activator
IModel model = (IModel)Activator.CreateInstance(Type.GetType(typeName));
你可以看看Activator.CreateInstance。
有很多方法可以做到這一點。我執行以下操作:
Type t = Type.GetType("<name of class>");
IModel m = (IModel)Activator.CreateInstance(t); // assuming constructor has no parameters
...或[this](http://stackoverflow.com/questions/7398147/how-do-i-create-an-instance-from-a-string-那提供這個類名?lq = 1)或[this](http://stackoverflow.com/questions/7518383/how-do-i-create-an-object-from-a-string?lq = 1)或[this](http://stackoverflow.com/questions/648160/how-do-i-create-an-instance-from-a-string-in-c?lq=1)或[this] (http://stackoverflow.com/questions/493490/converting-a-string-to-a-class-name?lq=1)... –
這個問題已被問及一遍又一遍。如果網站建議檢查之前是否有問題,**請這樣做**。 –