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:
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, adWeatherReport GetWeatherReport()
esempio .Implementazione dell'interfaccia del servizio con un'implementazione concreta. Ad esempio:
public class WeatherService : IWeatherService { public WeatherReport GetWeatherReport() { // Get weather report data... return weatherReport; } }
Registrazione del servizio con l'host nel
App.cs
costruttore 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
ServiceCollectionServiceExtensions
servizi.Utilizzo dei servizi. Esistono diversi modi per utilizzare i servizi e due dei modi più diffusi sono:
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.
L'utilizzo dei servizi nei
.razor
file viene eseguito con la@inject
direttiva , che viene usata nelMainPage.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.