2012-03-19 2 views
1

Как передать int, string и float в метод, называемый с использованием отражений? В принципе, разные типы при вызове: method.Invoke (service, null); Я могу передать массив объектов, но как он узнает, какие типы я прохожу? ThanksC# reflections - метод вызова, имеющий параметры разных типов

ответ

2

Ваша информация о методе связана точно с одним способом. Два разных метода могут иметь одно и то же имя, когда их подпись (типы параметров) различна.

Так что если у вас есть перегруженный метод, вы можете получить любой из них с помощью

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

обеспечения типов параметров в массиве.

+0

Предположим, я хочу вызвать такой метод: getdetails (int id, string name, float avgsal) с использованием отражений. Затем, что и как следует хранить в массиве параметров объекта []? – Milee

+0

Вы получаете свой MethodInfo через 'var method = type.GetMethod (" getdetails ", новый тип [] {typeof (int), typeof (string), typeof (float)});' и вызывать его через 'var result = method .Invoke (myObject, новый объект [] {myId, myName, myAvgsal}); –

Смежные вопросы