首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >InvokeMember object[]参数

InvokeMember object[]参数
EN

Stack Overflow用户
提问于 2013-04-09 01:29:54
回答 1查看 4.7K关注 0票数 4

问题所在

这可能是一个非常简单的问题,但它让我困惑了一段时间: InvokeMember可以接受表示传递给该方法所需参数的object[]。我有两个对象(list of obj,string foo)。我可以成功地将任何一个变量传递给该方法,但是当我尝试同时传递这两个变量时,我得到了一个方法'x‘NotFound异常。

详细信息

调用该方法:

代码语言:javascript
复制
classtype.InvokeMember(someMethodName, 
            BindingFlags.Public | BindingFlags.InvokeMethod|BindingFlags.Static,
            null,
            null,
            new object[]{ someListOfObjects, stringValue});

接收方式:

代码语言:javascript
复制
public static string TestMethod(object foo)
{
    return "foo";
}

注意:当传递new object[]{someListOfObjects}new object[]{stringValue}时,我会如期到达目的地方法,但是当我尝试同时传递这两个方法时,它无法找到该方法。我在TestMethod上的传入参数是否正确?

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

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-04-09 01:31:56

您传入了一个具有两个元素的数组,因此它将该数组视为参数数组,查找具有两个参数的方法。您希望得到一个长度为1的数组,其唯一元素是一个对象,该对象恰好也是一个长度为2的数组。

选项:

  • 将其强制转换为object,以便它成为构建包装数组的编译器参数数组

(object)新的object[] { someListOfObjects,stringValue }

  • 直接自己创建数组:

新的object[] {新的object[] { someListOfObjects,stringValue }}

  • 修改TestMethod参数以匹配阵列:

公共静态字符串TestMethod(List foo,string bar)

票数 10
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15885314

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档