2012-03-19 104 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

相關問題