Re[10]: О пользе Dependency Injection фреймворков
От: Ночной Смотрящий Россия  
Дата: 30.01.21 18:00
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>А ты попробуй представить упрощенный алгоритм создания экземпляра класса.


Влад, мне не надо его представлять, я сам парочку контейнеров написал, и код MS.DependencyInjection очень хорошо знаю.

VD> Вот есть у тебя классы A, B и C. Они зависят один от другого. Скажем C от B и B от A. Как создать C? Сначала придется создать A и Б.


И? Граф то зачем?
Я тебе больше скажу, в случае штатного контейнера дотнета его в принципе создать нельзя. Возьмем такой метод:
public static IServiceCollection AddSingleton (this IServiceCollection services, Type serviceType, Func<IServiceProvider,object> implementationFactory);

Как ты тут зависимости определишь? Будешь IL код анализировать?

VD> Далее добауляем сюда регистпацию. И вот она проблема. Регистрация может произойти после создания регистрируемого типа.


В случае штатной реализации дотнета — не может. Регистрируешь ты в IServiceCollection, а экземпляры создает IServiceProvider.

VD> Если бы рассчет.зависимостей и регистрация происходили во время компиляции, этой проблемы не было бы


Ее и так нет.

VD>, а все резолвы могла бы показать IDE.


Что значит показать резолвы?
... << RSDN@Home 1.3.17 alpha 5 rev. 62>>
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.