2012-03-19 92 views
1

如何将int,string和float传递给使用反射调用的方法?基本上,不同类型的调用是这样的: method.Invoke(service,null); 我可以传递一个对象数组,但它将如何知道我传递的是什么类型? 谢谢C#反射 - 具有不同类型参数的调用方法

回答

2

您的方法信息恰好与一种方法相关联。两种不同的方法在签名(参数类型)不同时可以具有相同的名称。

所以,如果你有一个重载的方法,您可以通过使用

public MethodInfo GetMethod(
string name, 
Type[] types 
) 

在阵列中提供的参数的类型得到其中一方。

+0

假设我想调用一个像这样的方法:getdetails(int id,string name,float avgsal)using reflections。那么我应该如何将它存储在object []参数数组中? – Milee 2012-03-19 11:16:28

+0

你可以通过var method = type.GetMethod(“getdetails”,new Type [] {typeof(int),typeof(string),typeof(float)})来获得你的MethodInfo;'并通过'var result = method 。调用(myObject,新对象[] {m​​yId,myName,myAvgsal});' – 2012-03-19 11:35:33

相关问题