やりたいこと
データベースからのオブジェクト取り込み、あるいはその書き込みに使用するための処理をループ化するための前研究
やったこと
- リフレクションを使用したメソッドの動的取得
- 取得したメソッドのジェネリックメソッド化
- ジェネリックメソッドの実行
メソッドの動的取得
System.Reflection.MethodInfoを用いる。
クラスが持つメソッド名については私の知る範囲だとベタで用いなければならないというのが残念ではある。
GetMethodInfo
System.Reflection.MethodInfo methodInfo = Type.GetMethod(string methodName, BindingFlags flags);
メソッドのジェネリック化
単純にMethodInfo.GetGenericMethodメソッドに対して対応する型引数と対応する型情報の配列を引数として用いる
メソッドの実行
何気に引っかかる。
MethodInfo.Invokeメソッドは第1・第2引数ともにObject型(およびその配列)であるため何を入れても大体コンパイルエラーを起こさないためである。
第1引数にはインスタンスオブジェクトを、第2引数には実行時の引数として使用したいものを順番に投入する。
Staticだったり引数なしメソッドなら必要に応じてnullにする。