c#的反射机制可以通过方法名调用方法,这里假设场景是客户端发送请求给服务端,请求里包含着信息,服务端解析出这个信息后根据这个信息调用对应的方法
string methodName = Enum.GetName(typeof(ActionCode), actionCode);//将枚举类型转换为方法名,第一个参数是枚举的类型,第二个参数是客户端传过来的信息,返回值是该信息对应的方法名
MethodInfo mi = controller.GetType().GetMethod(methodName);//利用反射机制得到方法
if(mi==null)//处理异常
{
Console.WriteLine("[警告]在controller[" + controller.GetType() + "中没有对应的处理方法");
return;
}
BaseController controller;
object[] parameters = new object[] { data };
object o = mi.Invoke(controller,parameters);//表示需要controller实例调用这个方法,方法的参数是数组parameters里面的值