Inserción de dependencias
Importante
Este proyecto es una versión experimental. Esperamos que pruebe Experimental Mobile Blazor Bindings y proporcione comentarios en https://github.com/xamarin/MobileBlazorBindings.
La incorporación de la inserción de dependencias en una aplicación implica algunos pasos:
Definición de una interfaz de clase para el servicio. El ejemplo de aplicación meteorológica precede a las definiciones de interfaz debido a la naturaleza simple de la aplicación, pero, de lo contrario, tendría una interfaz denominada
IWeatherService
con métodos en ella, comoWeatherReport GetWeatherReport()
.Implementación de la interfaz de servicio con una implementación concreta. Por ejemplo:
public class WeatherService : IWeatherService { public WeatherReport GetWeatherReport() { // Get weather report data... return weatherReport; } }
Registro del servicio con el host en
App.cs
el constructor de :var host = Host.CreateDefaultBuilder() .ConfigureServices((hostContext, services) => { // Register app-specific services services.AddSingleton<IWeatherService, WeatherService>(); }) .Build();
Hay varios métodos de registro para los servicios disponibles en la
ServiceCollectionServiceExtensions
clase .Consumo de los servicios. Hay varias maneras de consumir los servicios y dos de las formas más populares son:
La inserción de constructores en tipos personalizados también se registró en el contenedor de inserción de dependencias. Para consumir un servicio de esta manera, agregue un parámetro de constructor a la clase que usa el servicio y, cuando esa clase se recupere del contenedor de inserción de dependencias, tendrá sus parámetros rellenados con otros servicios del contenedor de inserción de dependencias.
El consumo de servicios en
.razor
archivos se realiza con la@inject
directiva , que se usa en elMainPage.razor
archivo :@inject WeatherService WeatherService
Obtenga más información sobre la
@inject
directiva en la documentación de Blazor.
Sugerencia
En las aplicaciones híbridas, los servicios se comparten entre la interfaz de usuario nativa de la aplicación, el elemento web de la aplicación y en cualquier otro lugar. No se requieren pasos especiales para compartir servicios y estado entre áreas de aplicaciones híbridas.