在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)等等不同的方法之前

在c#中调用动态方法

使用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);