Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Важно!
Этот проект является экспериментальным выпуском. Мы надеемся, что вы опробуете экспериментальные мобильные привязки Blazor и оставить отзыв по адресу https://github.com/xamarin/MobileBlazorBindings.
Внедрение зависимостей в приложение включает в себя несколько шагов.
Определение интерфейса класса для службы. Пример приложения погоды не содержит определений интерфейсов из-за простой природы приложения, но в противном случае у него будет интерфейс с именем
IWeatherServiceс такими методами, какWeatherReport GetWeatherReport().Реализация интерфейса службы с конкретной реализацией. Пример:
public class WeatherService : IWeatherService { public WeatherReport GetWeatherReport() { // Get weather report data... return weatherReport; } }Регистрация службы в конструкторе узла
App.cs:var host = Host.CreateDefaultBuilder() .ConfigureServices((hostContext, services) => { // Register app-specific services services.AddSingleton<IWeatherService, WeatherService>(); }) .Build();В классе доступно
ServiceCollectionServiceExtensionsнесколько методов регистрации служб.Использование служб. Существует несколько способов использования служб, и два из наиболее популярных способов:
Внедрение конструктора в пользовательские типы также зарегистрировано в контейнере внедрения зависимостей. Чтобы использовать службу таким образом, добавьте параметр конструктора в класс, который использует службу, и при извлечении этого класса из контейнера внедрения зависимостей его параметры будут заполнены другими службами из контейнера внедрения зависимостей.
Использование служб в
.razorфайлах выполняется с помощью директивы@inject, которая используется вMainPage.razorфайле :@inject WeatherService WeatherServiceДополнительные сведения о директиве
@injectсм. в документации по Blazor.
Совет
В гибридных приложениях службы совместно используются между собственным пользовательским интерфейсом приложения, веб-частью приложения и другими службами. Для совместного использования служб и состояния между областями гибридных приложений не требуется никаких особых действий.