做集成对接的接口比较多样。接口设计者经常是定义一个入口,要求调用者传入ActionName来进行导向。
比如ActionName为method1,便调用method1方法,并给出相应的返回信息。
我们自然可以写死,去switch方法名,然后写调用方法,但这种方式非常冗余,且后续你得一直维护。
这里介绍反射。
using System.Reflection;
Type t = typeof(TestController);
MethodInfo mt = t.GetMethod(ActionName);//传入要调用的方法名
if (mt != null)
{
result = (testType)mt.Invoke(this, new object[] { //调用的方法的参数});//若调用static方法首参数为null,同类调用为this,非同类用实例,强转的类型即为接口返回类型
}else
{
//返回异常类
}