How to use reflection to call a API by string name?

耗尽温柔 提交于 2019-12-02 07:42:42

You can use a combination of:

  • Type.GetType(string)
  • Type.GetMethod(string)
  • IIocResolver.ResolveAsDisposable(Type) — by ABP
  • MethodInfo.Invoke(Object, Object[])
// var appServiceName = "MyAppService";
// var methodName = "MyMethod";
// var input = new object[] { new MyInput() };

var appServiceType = Type.GetType(appServiceName);
var method = appServiceType.GetMethod(methodName);

using (var appService = IocResolver.ResolveAsDisposable(appServiceType))
{
    var output = await (Task)method.Invoke(appService.Object, input);
}
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!