Nello scorso script (https://www.aspitalia.com/script/1465/Registrare-Servizi-Multipli-Tramite-Chiavi-ASP.NET-Core.aspx) abbiamo introdotto i KeyedService, una nuova modalità di registrazione di servizi nell'IoC Container di ASP.NET Core 8 tramite cui diverse implementazioni di un servizio possono essere associate a una chiave specifica.
Nel caso volessimo un'implementazione di fallback, possiamo registrarla nel modo seguente, sfruttando la chiave speciale KeyedService.AnyKey:
builder.Services.AddKeyedTransient<IForecastProvider, AlwaysSunnyForecastProvider>("sunny"); builder.Services.AddKeyedTransient<IForecastProvider, DefaultForecastProvider>(KeyedService.AnyKey);
In questo modo, DefaultForecastProvider verrà ritornato in tutti i casi in cui la chiave non venga trovata:
public WeatherForecastController([FromKeyedServices("whatever")] IForecastProvider provider) { _provider = provider; // <-- DefaultForecastProvider }
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Implementare l'infinite scroll con QuickGrid in Blazor Server
Usare il versioning con i controller di ASP.NET Core Web API
Mascherare l'output di un valore all'interno dei log di un workflow di GitHub
Miglioramenti agli screen reader e al contrasto in Angular
Implementare il throttling in ASP.NET Core
Gestire errori funzionali tramite exception in ASP.NET Core Web API
Utilizzare la libreria Benchmark.NET per misurare le performance
Autenticarsi in modo sicuro su Azure tramite GitHub Actions
Definire stili a livello di libreria in Angular
Eseguire query verso tipi non mappati in Entity Framework Core
Accesso sicuro ai secrets attraverso i file in Azure Container Apps
Eseguire le GitHub Actions offline