我需要使用反射來動態創建一個C#類型。這是我的場景:我正在編寫一個基類,它需要實例化某個對象作爲其初始化的一部分。基類將不知道它應該實例化的對象的類型,但派生類將會。所以,我想讓派生類在base()調用中將類型傳遞給基類。代碼如下所示:如何使用反射動態實例化類型?
public abstract class MyBaseClass
{
protected MyBaseClass(Type myType)
{
// Instantiate object of type passed in
/* This is the part I'm trying to figure out */
}
}
public class MyDerivedClass : MyBaseClass
{
public MyDerivedClass() : base(typeof(Whatever))
{
}
}
換句話說,基類正在委託其派生類型選擇要實例化的對象類型。
有人可以協助嗎?
+1,不知道爲什麼這是倒票。平衡它。 – JaredPar 2011-03-31 00:16:55
已接受,從我的+1 – 2011-03-31 00:48:05
有點受限:「使用該類型的」default「構造函數創建指定類型的實例。」只有默認的構造函數。在構造過程中使用參數時,這可能更有用:使用最符合指定參數的構造函數創建指定類型的實例=> http://msdn.microsoft.com/en-us/library/4b0ww1we.aspx – 2013-08-26 09:02:58