Параметр приведение в отражениях в C # VS2010 - PullRequest
0 голосов
/ 22 марта 2012

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


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


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

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

Ответы [ 2 ]

0 голосов
/ 22 марта 2012

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

0 голосов
/ 22 марта 2012

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

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