Wstrzykiwanie zależności

Ważne

Ten projekt jest wersją eksperymentalną. Mamy nadzieję, że wypróbujesz eksperymentalne powiązania platformy Blazor dla urządzeń przenośnych i przekażesz opinię na stronie https://github.com/xamarin/MobileBlazorBindings.

Dołączenie wstrzykiwania zależności do aplikacji obejmuje kilka kroków:

  1. Definiowanie interfejsu klasy dla usługi. Przykład aplikacji pogodowej oznacza definicje interfejsu ze względu na prosty charakter aplikacji, ale w przeciwnym razie miałby interfejs o nazwie IWeatherService z metodami, takimi jak WeatherReport GetWeatherReport().

  2. Implementowanie interfejsu usługi przy użyciu konkretnej implementacji. Na przykład:

    public class WeatherService : IWeatherService
    {
        public WeatherReport GetWeatherReport()
        {
            // Get weather report data...
            return weatherReport;
        }
    }
    
  3. Zarejestrowanie usługi przy użyciu hosta w App.cskonstruktorze programu :

    var host = Host.CreateDefaultBuilder()
        .ConfigureServices((hostContext, services) =>
        {
            // Register app-specific services
            services.AddSingleton<IWeatherService, WeatherService>();
        })
        .Build();
    

    W klasie jest dostępnych ServiceCollectionServiceExtensionskilka metod rejestracji usług.

  4. Korzystanie z usług. Istnieje kilka sposobów korzystania z usług, a dwa z najpopularniejszych sposobów to:

    1. Wstrzykiwanie konstruktora w typach niestandardowych również zarejestrowane w kontenerze wstrzykiwania zależności. Aby korzystać z usługi w ten sposób, dodaj parametr konstruktora do klasy korzystającej z usługi, a gdy ta klasa zostanie pobrana z kontenera DI, będzie mieć parametry wypełnione innymi usługami z kontenera DI.

    2. Korzystanie z usług w .razor plikach odbywa się za @inject pomocą dyrektywy , która jest używana w MainPage.razor pliku:

      @inject WeatherService WeatherService
      

      Dowiedz się więcej o dyrektywie w dokumentacji platformy@inject Blazor.

Porada

W aplikacjach hybrydowych usługi są współużytkowane między natywnym interfejsem użytkownika aplikacji, częścią internetową aplikacji i wszędzie indziej. Nie ma żadnych specjalnych kroków wymaganych do udostępniania usług i stanu między obszarami aplikacji hybrydowych.