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