2016-04-15 3 views
3

В чем разница между методами MethodInfo.Invoke() и Type.InvokeMember()?MethodInfo.Invoke против Type.InvokeMember?

Какой должен использоваться в каких сценариях?

Каков предпочтительный способ вызова метода?

ответ

0

Я предполагаю, что оба должны быть одинаковыми, если вызов метода или конструктора согласован, но InvokeMember должен использоваться, если вы хотите получить/установить поле/свойство.

Проверьте ссылки здесь для получения более подробной информации.

см MethodBase.Invoke Example

см Type.InvokeMember Example

0

В зависимости от того, как вы используете его, MethodInfo.Invoke может быть быстрее. Когда вы вызываете Type.InvokeMember под обложками, извлекается MethodInfo, а затем вызывается. Получение MethodInfo стоит дорого. Если вы вызываете один и тот же метод несколько раз, сохраняя MethodInfo в переменной и вызывая его из переменной с сохранением времени.