C#VS2010反射中的参数转换

C#VS2010反射中的参数转换,c#,string,parameters,casting,system.reflection,C#,String,Parameters,Casting,System.reflection,我是否可以在方法期间将字符串作为参数传递。对于签名的方法Getdetails(int,string,bool)调用(objectname,object[]params),而不在传递之前将其转换为各自的类型 反射将处理转换,还是应该将其动态转换为与函数签名匹配的适当参数类型?我在同一个应用程序中调用了两个具有不同签名的方法 下面是一个场景: 我将带有参数类型和值的methodId存储在表中,然后检索它们并使用反射调用。但是我得到了TargetInvocationException,或者无法将S

我是否可以在方法期间将字符串作为参数传递。对于签名的方法Getdetails(int,string,bool)调用(objectname,object[]params),而不在传递之前将其转换为各自的类型


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


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

它将无法处理。您必须创建并传递一个对象数组:

method.Invoke(object,new object[]{1, "test", true});

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

否,反射不会为您进行转换。如你所知,谢谢大家。我应该为返回类型为void的方法和返回类型为void的方法分别创建调用吗?