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
Testare l'invio dei messaggi con Event Hubs Data Explorer
Registrare servizi multipli tramite chiavi in ASP.NET Core 8
Utilizzare un numero per gestire la concorrenza ottimistica con SQL Server ed Entity Framework
.NET Conference Italia 2024
Minimal API in ASP.NET Core 8
Eseguire una query su SQL Azure tramite un workflow di GitHub
Eseguire query manipolando le liste contenute in un oggetto mappato verso una colonna JSON
Estendere Microsoft 365 Copilot con .NET
C# 12: Cosa c'è di nuovo e interessante
Esportare ed analizzare le issue di GitHub con la CLI e GraphQL
Eseguire un metodo asincrono dopo il set di una proprietà in Blazor 8
Generare HTML a runtime a partire da un componente Razor in ASP.NET Core