Кто-нибудь начал проект для выполнения IOC во время компиляции (возможно, используя Roslyn или Linq MethodInfo emit)?
Мой опыт работы с контейнерами IOC до сих пор был замечательным, за исключением нескольких небольших проблем.
- Многие контейнеры IOC запускаются медленно, так как большая часть логики разрешения происходит здесь
- Часто трудно гарантировать, что разрешение возможно, так как компиляция больше не гарантирует, что конструктор может быть вызван
- Часто контейнеры IOC добавляют небольшие накладные расходы к среде выполнения (некоторые даже не маленькие, часто те, которые запускаются быстро, работают медленно)
Мне кажется, что идеальным решением было бы добавить шаг компиляции в цепочку сборки, которая добавляет класс Factory вместо IOC.
Кто-нибудь делал это раньше? Если нет, то почему нет?