InvokeMember object []参数

Aar*_*ark 4 c# object

问题

这可能是一个非常简单的问题,但它让我停留了一段时间:InvokeMember可以接受一个object []来表示传递给方法所需的参数.我有两个对象(obj列表,字符串foo).我可以成功地将任一变量传递给方法,但是当我尝试并传递它们时,我得到一个方法'x'NotFound异常.

细节

调用方法:

classtype.InvokeMember(someMethodName, 
            BindingFlags.Public | BindingFlags.InvokeMethod|BindingFlags.Static,
            null,
            null,
            new object[]{ someListOfObjects, stringValue});
Run Code Online (Sandbox Code Playgroud)

接收方式:

public static string TestMethod(object foo)
{
    return "foo";
}
Run Code Online (Sandbox Code Playgroud)

注意:当传递new object[]{someListOfObjects}new object[]{stringValue}我按预期到达目标方法时,但是当我尝试并传递它们时,它无法找到该方法.我在TestMethod上的传入参数是否正确?

当我将TestMethod更改为接受object []时,永远不会找到该方法.

Jon*_*eet 9

您传入一个包含两个元素的数组,因此它将其视为参数数组,查找具有两个参数的方法.你想得到一个长度为1的数组,它的唯一元素是一个对象,它也恰好是一个数组(长度为2).

选项: