【C#】インスタンスの動的生成(Type.Invokember)
※ TestClassというクラスは事前に作成しておく。
文字列からインスタンスを生成(動的にインスタンスを生成するのに便利)
string[] weekDays = { "Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat" }; // NameSpaceという名前空間のTestClassのインスタンスを生成(コンストラクタの引数にweekDaysを指定) Type t = Type.GetType("NameSpace.TestClass"); var inst = (TestClass)t.InvokeMember(null, System.Reflection.BindingFlags.CreateInstance, null, null, new object[] { weekDays });
インスタンスを指定してメソッドを実行(クラス違いの同名メソッドを実行するのに便利)
string[] weekDays = { "Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat" }; // TestClassのexecuteというメソッドを実行(メソッドの引数にweekDaysを指定) TestClass inst = new TestClass(); Type t = inst.GetType(); t.InvokeMember("execute", System.Reflection.BindingFlags.InvokeMethod, null, inst, new object[] { weekDays });