通过名称创建和传递参数 - c#

我正在对方法的参数进行foreach循环。

MethodInfo objMethoda = typMyService.GetMethod(
                                        "GetBySystemWarrantyId",
                                        Type.EmptyTypes);
ParameterInfo[] pars = objMethoda.GetParameters();
foreach (ParameterInfo p in pars)
    Console.WriteLine("{0} {1}",p.ParameterType , p.Name);

当我尝试调用它时,我得到了不匹配的参数。

我的方法有5个参数:

 System.String whereClause
 System.String orderBy
 System.Int32 start
 System.Int32 pageLength
 out System.Int32& totalCount

我可以创建这些参数并将其传递给方法吗?

var dataTableObjecta = objMethoda.Invoke(oMyServicea, null);

例如:与上述顺序相同的参数将是

"1=1"
""
0
100000
out totalCount

参考方案

看下面的例子

方法

public void GetBySystemWarrantyId(string whereClause, string orderBy, int start, int end, out int totalCount )
{
    totalCount = 3;
}

用法

MethodInfo objMethoda = this.GetType().GetMethod("GetBySystemWarrantyId");
int cnt = 0;
object[] parameters = {"1=1", "", 0, 100000, cnt};
objMethoda.Invoke(this, parameters);
int parsedNumber = (int)parameters[4];

我发现的是,如果您不将参数作为预先声明的对象数组传递,而只是如下所示

objMethoda.Invoke(this, new object[] { "1=1", "", 0, 100000, cnt });

返回值未存储在cnt

当回复有时是一个对象有时是一个数组时,如何在使用改造时解析JSON回复? - java

我正在使用Retrofit来获取JSON答复。这是我实施的一部分-@GET("/api/report/list") Observable<Bills> listBill(@Query("employee_id") String employeeID); 而条例草案类是-public static class…

C#无法将类型为“ System.Double”的对象转换为类型为“ System.Single” - c#

在判断此问题已得到回答之前,请阅读说明。我在下面有这个简单的代码:Dictionary<string, object> d = new Dictionary<string, object>(); d.Add("key" , 30d); System.Diagnostics.Debug.WriteLine($…

改造正在返回一个空的响应主体 - java

我正在尝试使用Retrofit和Gson解析一些JSON。但是,我得到的响应机构是空的。当我尝试从对象中打印信息时,出现NullPointerException。我确保URL正确,并且我也确保POJO也正确。我正在使用jsonschema2pojo来帮助创建POJO类。这是我要解析的JSON{ "?xml": { "@versi…

每个文件合并后添加换行 - python

我有很多类似以下内容的JSON文件:例如。1.json{"name": "one", "description": "testDescription...", "comment": ""} test.json{"name"…

Json到php,json_decode返回NULL - php

我正在用PHP进行JSON解析器的一些API,用于存储有关遗产的信息。我在解析时遇到问题,因为它返回的是NULL值而不是数组或对象。简单的JSON代码可以很好地解析,但是可以这样:{"success":true,"totalCount":1,"data":[{"id":99694…