我正在.net 3.5中查看Activator.CreateInstance的所有各種構造函數。我想創建一個類的實例,調用一個特定的構造函數。我沒有課程類型,只有它的名字。我有以下幾點,這是有效的,但實際上最先調用無參數構造函數,然後是我想要的。這不是什麼大問題,但無參數構造函數調用一個相當繁忙的基構造函數,而且我想調用的構造函數也是。Activator.CreateInstance具有類型名稱作爲字符串幷包含參數
換句話說,給定一個類型,使用參數調用CreateInstance很容易(只有下面的最後兩行),但只給出一個類型名稱,有沒有比這更好的方法?
ObjectHandle oh = Activator.CreateInstance("MyDllName", "MyNS." + "MyClassName");
object o = oh.Unwrap();
object newObj = Activator.CreateInstance(o.GetType(), new object[] { param1 });
return (IMyDesiredObject)newObject;
謝謝!
謝謝,裏德 - 我看到那個人,但我不知道如何處理ActivationAttributes和SecurityInfo。這些文檔沒有表明(和Binder和Culture一樣)它們可能是空的,但事實證明它們可以。適合我! – 2010-05-12 16:59:48