2009-06-02 109 views
2

我想在運行時在代碼中動態創建一個類型化數據集的實例。我提供給我的類型,但是當我嘗試這樣做:動態定義類型化數據集?

object obj = Activator.CreateInstance(Type.GetType("TYPED DATASET TYPE HERE")); 

的問題是類型似乎並沒有根據,當我嘗試運行它的代碼是有效的。我在這裏做錯了什麼?

+0

可能有一些與asp.net相關的問題。 本地化問題的好的第一步是從庫,控制檯或winforms應用程序創建實例。 – 2009-06-02 21:58:02

+0

重新評論 - 實際上,typeof(TheKnownType).Assembly.GetType(...)應該這樣做;無需創建實例。 – 2009-06-02 22:10:02

回答

3

定義的類型在哪裏? (哪個組裝)。

除非您給它一個裝配合格的名稱,否則它只會在組件中尋找,並調用組件和其他幾個關鍵組件。選項:

  • 使用裝配合格的名稱( 「somen.amespace.sometype,someassembly,...」)
  • 得到Assembly實例(從在裝配已知類型),並在使用GetType(fullyQualifiedName)Assembly實例
0

假設您發出正確的數據集代碼,您可能還需要加載程序集。

看看下面的.net命名空間reflection.emit和反射。

你也可以看看諸如windsor這樣的開源項目,它使用反射來發射新類來創建攔截器。可能有代碼可以從中學習。