我知道對象的類型(比方說IAnimal)我需要實例化,並且名稱(讓我們說老虎)。假如知道對象名稱的變量是一個字符串,我該如何編寫代碼來實例化Tiger。我很可能在這裏錯過了一些簡單的東西,但我目前堅持這一點。在C#中,如何創建一個給定其類型名稱的對象?
更新:我的意思是Class Tiger:IAnimal,爲了體現這一點,改變了上面的內容。
我知道對象的類型(比方說IAnimal)我需要實例化,並且名稱(讓我們說老虎)。假如知道對象名稱的變量是一個字符串,我該如何編寫代碼來實例化Tiger。我很可能在這裏錯過了一些簡單的東西,但我目前堅持這一點。在C#中,如何創建一個給定其類型名稱的對象?
更新:我的意思是Class Tiger:IAnimal,爲了體現這一點,改變了上面的內容。
例如:
// the string name must be fully qualified for GetType to work
string objName = "TestCreateInstance.MyObject";
IProcess txObject = (IProcess)Activator.CreateInstance(Type.GetType(objName));
或
object o = Activator.CreateInstance("Assem1.dll", "Friendly.Greeting");
我不知道我完全理解這個問題。但是,假設ITiger實際上是一個具體的類而不是一個接口(如I *所示)。
您可以使用反射來創建字符串類型的實例。
喜歡的東西:
ITiger myTiger = Activator.CreateInstance("ITiger") as ITiger;
http://msdn.microsoft.com/en-us/library/system.activator.createinstance.aspx
是你要求什麼呢?
使用反射按類型名稱實例化類的對象。
object o = Activator.CreateInstance(Type.GetType("Tiger"));
注意,你不能實例化接口(由你命名來看),因爲他們僅僅是定義了一類特殊應該實施合同。