在c#中调用动态方法
本文关键字:动态 方法 调用 | 更新日期: 2023-09-27 18:09:51
我有json请求参数
<>之前{"实验":0,"iat":0,"方法":"登录",:"apiSecretKey y109m113e122","用户名":"test@test.com","密码":"测试","isGuestCustomerId":1}之前和方法是在WCF rest api服务(c#)
<>之前登录(字符串apiSecretKey,字符串userName,字符串密码,int isGuestCustomerId)之前如何将这些请求参数传递给登录方法?
注意:我有大约200个方法可以用这种方式调用不同的参数,比如 <>之前注册(字符串apiSecretKey,字符串emailId,字符串密码,字符串firstName,字符串lastName,字符串phoneNumber,字符串性别,字符串dateOfBirth,字符串companyName)等等不同的方法之前使用Json。净,
var jobj = JObject.Parse(json);
object instance = .... ; //Instance of your class containing methods..
var mi = instance.GetType().GetMethod(jobj["method"].ToString(), BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic);
var parameters = mi.GetParameters()
.Select(p => Convert.ChangeType(jobj[p.Name].ToString(), p.ParameterType))
.ToArray();
object retval = mi.Invoke(instance, parameters);