0

名前空間ファイルのクラスは次のとおりです

 1. File01DataTable
 2. File02DataTable 
 3. File03DataTable
 4. File04DataTable
 5. File05DataTable
 6. File06DataTable

実行時にインスタンスを作成したいと思います。ファイルが File01 の場合、File01DataTable のインスタンスを作成する必要があります。どちらが File01DataTable をインスタンス化しているかに従う代わりに、それは共通である必要があります。

File01DataTable dt = (File01DataTable)tDS.Tables[filename];

こんな風にできると思った

string dataTableName = filename + "DataTable";
dataTableName dt = (dataTableName)tDS.Tables[filename];

しかし、これは適切な方法ではないと言って申し訳ありません。ここで tDS は Files のインスタンスであるか、無視することができます。何かアドバイス?
前もって感謝します。

4

1 に答える 1

0

Activator.CreateInstance(Type type)メソッドを使用 して、名前からクラスのインスタンスを取得できます。

たとえば、私のアプリケーションでは、次のような myClass クラスがあります。

class myClass
{
    public string myField;
}

次に、このクラスのインスタンスを次のように取得できます。

Type myType = Type.GetType("Your_app_namespace.class_name");  // for me FarhadApp.myClass
object obj = Activator.CreateInstance(myType);
于 2013-05-28T12:25:24.353 に答える