How to Call method using its name? [duplicate]
I have an object with some methods and I want to call a method using the method name as string only.
object obj;
obj.method();
Given a method MethodName with the signature void MethodName(int num)
, it would be done something like:
MethodInfo method = obj.GetType().GetMethod("MethodName",
BindingFlags.Public|BindingFlags.Instance)
method.Invoke(obj, 4) // void method
Hope this helps.
In addition to reflection you may also want to look at dynamic invocation; which is latebound (i.e. at runtime as opposed to compile time) dispatch of method invocations.
object obj;
var dyn = (dynamic) obj;
dyn.method();
精彩评论