Класс ApplicationServicesContext¶
Глобальный доступ к сервисам приложения и описание их состава.
Класс не привязан ни к какому конкретному DI-контейнеру: единственный тип интеграции — IServiceProvider из BCL. Состав сервисов описывается методом RegisterApplicationServices, а время жизни и регистрацию выбирает хост.
Current предназначен только для мест, куда не может дотянуться внедрение через конструктор: расширений разметки, присоединённых свойств, конвертеров, code-behind без контейнера. Сами сервисы библиотеки получают зависимости через конструкторы и никогда не обращаются к глобальному контексту.
Пространство имён: Eremex.AvaloniaUI.Controls.ApplicationServices
Сборка: Eremex.Avalonia.Controls.ApplicationServices.dll
NuGet-пакет: Eremex.Avalonia.Controls.ApplicationServices
Объявление¶
Свойства¶
| имя | описание |
|---|---|
| static Current { get; } | Текущий поставщик сервисов или null, если он ещё не задан. |
Методы¶
| имя | описание |
|---|---|
| static GetRequiredService<T>() | Возвращает сервис и генерирует InvalidOperationException, если он отсутствует. |
| static GetService<T>() | Возвращает сервис или null, если он не зарегистрирован или контекст ещё не инициализирован. |
| static RegisterApplicationServices(…) | Описывает состав сервисов приложения без привязки к какому-либо конкретному DI-контейнеру. Хост получает пары из типа сервиса и фабрики и сам решает, как и с каким временем жизни их регистрировать. |
| static SetCurrent(…) | Задаёт текущего поставщика сервисов. Вызывается один раз при запуске приложения. Передача null сбрасывает контекст (используется в тестах). |
См. также¶
- пространство имён Eremex.AvaloniaUI.Controls.ApplicationServices
* Эта страница переведена с использованием технологий машинного перевода.