メソッドを名前で動的に呼び出す方法
文字列で指定したメソッドを呼び出すには? http://www.atmarkit.co.jp/fdotnet/dotnettips/389methodinvoke/methodinvoke.html メソッドやプロパティの有無を確認して呼び出すには? http://www.atmarkit.co.jp/fdotnet/dotnettips/359callbyname/callbyname.html
MethodInfoクラスのInvokeメソッドで可能らしい。
便利な世の中になったもんだ
とりあえずこんな感じにまとめてみた
Assembly asm = Assembly.LoadFrom("c:\hobe.dll"); Type targetType = asm.GetType("HogeClass"); MethodInfo mi = targetType.GetMethod("HogeMethod"); object target = Activator.CreateInstance(targetType,new object {"hogeArg"}); if(mi != null) { object methodParams = { "hoge","hoge" }; object result = mi.Invoke(target,methodParams); if(result != null) Console.WriteLine(result.ToString()); }