2012-03-19 16 views
1

反射を使用して呼び出されるメソッドにint、stringおよびfloatを渡すにはどうすればよいですか?基本的には、次のように呼び出すときに異なるタイプ: method.Invoke(service、null); 私はオブジェクト配列を渡すことができますが、どのような型を渡しているのですか? ありがとうC#reflections - 異なる型のパラメータを持つ呼び出しメソッド

答えて

2

あなたのメソッド情報は、ちょうど1つのメソッドに結合されています。シグネチャ(パラメータの型)が異なる場合、2つの異なるメソッドが同じ名前を持つ可能性があります。

あなたがオーバーロードされたメソッドを持っているのであれば、あなたは、アレイ内のパラメータタイプを提供

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

を使用することによって、それらのいずれかを取得することができます。

+0

私は反射を使ってgetdetails(int id、string name、float avgsal)のようなメソッドを呼び出すとします。それでは、どのようにしてオブジェクトの[] parameters配列に格納する必要がありますか? – Milee

+0

あなたのMethodInfoは 'var method = type.GetMethod(" getdetails "、新しいタイプ[] {typeof(int)、typeof(string)、typeof(float)});}で取得し、' var result = method .Invoke(myObject、new object [] {m​​yId、myName、myAvgsal})); ' –

関連する問題