Я работаю над созданием моей собственной платформы DI, которая создает фабрики делегата как осуществление изучения. Мой способ создать введенных делегатов состоит в том, чтобы использовать выражения для создания функции, которая называет статический метод со ссылкой на мой контейнер и любые параметрические усилители конструктора.
Подброшенный интересный вопрос относительно типов значения. Который является самым производительным:
a) Используя отражение для выбора статического общего метода с корректным количеством параметров затем используют MakeGenericMethod для удаления дженериков
b) Пойдите для старомодного Объекта параметрических усилителей [] и получите удар на упаковке?
IME, время бокса - ничто по сравнению с размышлениями.
Я предполагаю, что отражение будет намного медленнее, вероятно, на порядок величественнее.
Это довольно легко проверить, попробуйте и опубликуйте свои результаты :)
В этом случае бокс будет на порядки быстрее отражения.
Конечно, вы всегда можете кэшировать результаты отражения.