CSMemo015

文字列に該当するクラスのインスタンス化

インスタンス化したいクラスを含んだアセンブリがすでにディスクからロードされている場合には、
まずTypeクラス(System名前空間)の GetTypeメソッドにより、そのクラスのTypeオブジェクトを得る。
GetTypeメソッドでは、パラメータとしてクラス名を文字列で指定できる。

Type t = Type.GetType("インスタンス化したいクラス名");

Typeオブジェクトは、特定のクラス(型)に関する情報を含んだオブジェクトである。
Typeオブジェクトが得られれば、Activatorクラス(System名前空間)のCreateInstanceメソッドにより、
そのTypeオブジェクトが示すクラスのインスタンスを作成できる。

object o = Activator.CreateInstance(t);

このCreateInstanceメソッドは作成したインスタンスをobject型として返すため、
そのインスタンスのメンバにアクセスするには何らかのキャストが必要となる。


※リフレクションの話かなこれは。
最終更新:2011年04月29日 16:44