Czy ktoś rozpoczął projekt wykonywania MKOl w czasie kompilacji (być może przy użyciu emitowanego Roslyn lub Linq MethodInfo)?
Moje doświadczenie z kontenerami MKOl było jak dotąd świetne, z wyjątkiem kilku drobnych problemów
- Uruchamianie wielu kontenerów MKOl jest powolne, ponieważ występuje tutaj duża część logiki rozdzielczości
- Często trudno jest zapewnić rozdzielczość, ponieważ kompilacja nie zapewnia już możliwości wywołania konstruktora
- Często pojemniki IOC dodają niewielki narzut do środowiska wykonawczego (niektóre nie są nawet małe, często te, które uruchamiają się szybko, działają wolno)
Wydaje mi się, że idealnym rozwiązaniem byłoby dodanie kroku kompilacji do łańcucha kompilacji, który dodaje klasę Factory zamiast IOC.
Czy ktoś już to zrobił? Jeśli nie, dlaczego nie?
Robi to Dagger dla Java / Android . Poświęca trochę magii środowiska wykonawczego (np. Guice'a), aby zaoferować prawie całkowicie kompilację czasu kodowania, w tym konwersję większości błędów środowiska wykonawczego na błędy kompilacji.
Byłoby też fajnie w .NET.
źródło