Inserimento di dipendenze

Importante

Questo progetto è una versione sperimentale. Speriamo di provare le associazioni Sperimentale blazor per dispositivi mobili e fornire feedback all'indirizzo https://github.com/xamarin/MobileBlazorBindings.

L'incorporazione dell'inserimento delle dipendenze in un'applicazione prevede alcuni passaggi:

  1. Definizione di un'interfaccia della classe per il servizio. L'esempio di app meteo rinuncia alle definizioni di interfaccia a causa della natura semplice dell'app, ma in caso contrario avrà un'interfaccia denominata IWeatherService con metodi su di esso, ad WeatherReport GetWeatherReport()esempio .

  2. Implementazione dell'interfaccia del servizio con un'implementazione concreta. Ad esempio:

    public class WeatherService : IWeatherService
    {
        public WeatherReport GetWeatherReport()
        {
            // Get weather report data...
            return weatherReport;
        }
    }
    
  3. Registrazione del servizio con l'host nel App.cscostruttore del :

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

    Nella classe sono disponibili diversi metodi di registrazione per i ServiceCollectionServiceExtensionsservizi.

  4. Utilizzo dei servizi. Esistono diversi modi per utilizzare i servizi e due dei modi più diffusi sono:

    1. Inserimento del costruttore nei tipi personalizzati registrati anche nel contenitore di inserimento delle dipendenze. Per utilizzare un servizio in questo modo, aggiungere un parametro del costruttore alla classe che usa il servizio e quando tale classe viene recuperata dal contenitore di inserimento delle dipendenze, i relativi parametri saranno popolati con altri servizi dal contenitore di inserimento delle dipendenze.

    2. L'utilizzo dei servizi nei .razor file viene eseguito con la @inject direttiva , che viene usata nel MainPage.razor file :

      @inject WeatherService WeatherService
      

      Mer informasjon sulla @inject direttiva nella documentazione di Blazor.

Suggerimento

Nelle app ibride, i servizi vengono condivisi tra l'interfaccia utente nativa dell'app, la web part dell'app e ovunque. Non sono necessari passaggi speciali per condividere i servizi e lo stato tra aree di app ibride.