0

我可以在method.Invoke(objectname,object[]params)期间将字符串作为参数传递给签名Getdetails(int,string,bool)的方法,而不在传递之前将它们转换为相应的类型吗?


反射会处理转换还是应该将其动态转换为与函数签名匹配的适当参数类型?我在同一个应用程序中调用了几个具有不同签名的方法。


所以,这里是场景:

我将带有参数类型和值的 methodId 存储在表中。然后检索它们并使用反射调用。但我得到一个TargetInvocationException无法将 System.String 转换为 System.Int32。

4

2 回答 2

0

它不会处理。您必须创建并传递一个对象数组:

method.Invoke(object,new object[]{1, "test", true});
于 2012-03-22T11:14:25.843 回答
0

你已经回答了你自己的问题。你不能这样做。您传递的参数必须是正确的类型。

于 2012-03-22T11:16:01.547 回答