Popou
@Popou
Программист энтузиаст , обожаю саморефлексию

Почему так много рефлексии?

Я только начал изучать Asp.Net Core. Слишком много рефлексии, что с ней происходит? Кэшируется ли она в делегаты до вызова WebApp.Run() ? Или исчезает во время компиляции(ну как в юнити, там где часть рефлексии исчезает после компиляции) ?
  • Вопрос задан
  • 71 просмотр
Решения вопроса 1
Да, всё кэшируется, и ты можешь увидеть это в исходниках.
Решение такое, чтобы разработчику было удобнее.
Некоторые штуки можно на source generators запилить.
Некоторые другие - обойтись без рефлексии вообще (например использовать MapGet/MapPost вместо контроллеров)

На самом деле, проблемы от рефлексии могут возникнуть только в двух случаях:
1. Когда у тебя какая-то экстремальная нагрузка и нет кэширования (или это холодный запуск, и ничего в кэше нет)
2. Когда ты используешь Assembly Trimming

PS: А почему "слишком много" по твоему мнению? Что конкретно, что реализовано на рефлексии, можно реализовать без неё?
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы