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

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

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

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

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

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

Войти через центр авторизации
Похожие вопросы