Blazor Hybrid — это, прежде всего, фреймворк для создания кроссплатформенных приложений. Поэтому не исключены ситуации, когда разрабатываемый вами сервис должен использоваться на всех платформах, но использовать особенности каждой из платформ. В этом случае нам придется каким-либо образом обеспечить вызов кода конкретной платформы.
Внедрение зависимостей
Множественная регистрация сервисов в Blazor Hybrid
В подавляющем большинстве случаев, приложения, использующие внедрение зависимостей строятся по принципу «один сервис — одна используемая реализация сервиса». При необходимости, мы создаем другую реализацию сервиса (например, при обновлении приложения) и регистрируем эту реализацию в приложении. Однако, может возникнуть ситуация, когда нам потребуется на один сервис зарегистрировать несколько реализаций. Например, вы решите написать приложение для подсчета количества рабочих дней по пяти- и шестидневной рабочей неделе. В этом случае у вас будет один сервис (рабочий календарь) и две его реализации — для пятидневной рабочей недели и шестидневной. В этом случае вам пригодится множественная регистрация сервисов.
Жизненный цикл зависимостей в Blazor Hybrid
В .NET зависимости могут иметь различные жизненные циклы (всего выделяют три цикла) от которых зависит поведение сервиса. В этой части мы рассмотрим каким образом мы можем регистрировать свои сервисы в приложении и как жизненный цикл влияет на работу сервиса.
Способы получения зависимостей в Blazor Hybrid
В предыдущей части мы познакомились с одним из способов получения зависимостей — с использованием директивы Razor @inject. Способы получения зависимостей в Blazor Hybrid не ограничиваются только этой директивой и в этой части мы рассмотрим другие варианты.
Внедрение зависимостей в Blazor Hybrid
Внедрение зависимостей (Dependency Injection, DI) — это набор принципов и паттернов проектирования программных продуктов, позволяющий разрабатывать слабосвязанный код. Dependency Injection в ASP.NET Core и Blazor, в частности — это основной способ расширения возможностей приложения. Вместе с тем, так как приложения Blazor Hybrid направлены на разработку кроссплатформенных приложений, то здесь использование DI имеет свои особенности, которые мы и рассмотрим в этой части. Но начнем всё же с наиболее общих моментов использования DI в приложении Blazor.