Пользователь
Здесь важно время существования контекста, создаваемого контейнером DI.
По этому критерию можно разделить на две группы:
консольки, MVC, web-api: один экземпляр на запрос, Singleton / Transient работают как ожидается;
blazor server, win form, win service: один экземпляр на приложение, Singleton/Transient эквивалентны.
Вы рассматриваете только вариант несколько контекстов на одной странице.
Гораздо чаще (и болезнее) вариант многопользовательской работы.
Поэтому использование фабрики в случае blazor server – практически безальтернативно.
Попробуйте каскадный параметр.
Он специально для простого доступа из глубины дерева компонентов предназначен.
Здесь важно время существования контекста, создаваемого контейнером DI.
По этому критерию можно разделить на две группы:
консольки, MVC, web-api: один экземпляр на запрос, Singleton / Transient работают как ожидается;
blazor server, win form, win service: один экземпляр на приложение, Singleton/Transient эквивалентны.
Вы рассматриваете только вариант несколько контекстов на одной странице.
Гораздо чаще (и болезнее) вариант многопользовательской работы.
Поэтому использование фабрики в случае blazor server – практически безальтернативно.
Попробуйте каскадный параметр.
Он специально для простого доступа из глубины дерева компонентов предназначен.