天天看點

C#中利用反射,動态生成類的執行個體

在java語言中,運用Class.Class.forName(),可以根據一個類的類名(Type?),動态生成這個類的一個執行個體,在C#中該如何進行這樣的操作呢?方法如下:

System.Activator.CreateInstance(Type.GetType(string))

其中的string代表需要建立的類的類名,注意,該名稱包含命名空間。

例子:

在Hiber命名空間下建立兩個類,一個叫做Test

using System;

namespace Hiber

 public class Test

 {  

     public Test()

     {

        Console.WriteLine("Test Class");

     }  

  }

}

另一個類(程式入口)叫做TestEntry

using System;

namespace Hiber

{

 class TestEntry

 {

  [STAThread]

  static void Main(string[] args)

  {     

   object temp = System.Activator.CreateInstance(Type.GetType("Hiber.OracleTest"));

  }

 }

}

運作,可以看到控制台列印出“Test Class”,即調用了Test的構造方法