Приведение параметров в отражениях в C# VS2010

Могу ли я передавать строки в качестве аргументов во время method.Invoke(objectname,object[]params) для метода подписи Getdetails(int,string,bool) без приведения их к соответствующим типы перед прохождением?


Будет ли отражение обрабатывать приведение или я должен динамически приводить это к соответствующим типам параметров, соответствующим сигнатуре функции? Я вызываю пару методов с разными сигнатурами в одном приложении.


Итак, вот сценарий:

Я сохраняю идентификатор метода с типами и значениями параметров в таблице, а затем извлекаю их и вызываю с использованием отражений. Но я получаю TargetInvocationException или Не удается преобразовать System.String в System.Int32.


person Milee    schedule 22.03.2012    source источник
comment
Нет, отражение не сделает за вас кастинг. Как вы узнали.   -  person Hans Passant    schedule 22.03.2012
comment
Всем спасибо. Должен ли я создавать отдельные вызовы для вызова методов с возвращаемыми типами и методов с void в качестве возвращаемого типа?   -  person Milee    schedule 22.03.2012


Ответы (2)


Это не справится. Вы должны создать и передать массив объектов:

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

Вы уже ответили на свой вопрос. Вы не можете этого сделать. Передаваемые параметры должны быть правильного типа.

person Daniel Hilgarth    schedule 22.03.2012