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
Persistere la ChatHistory di Semantic Kernel in ASP.NET Core Web API per GPT
Ottimizzare le pull con Artifact Cache di Azure Container Registry
Selettore CSS :has() e i suoi casi d'uso avanzati
Recuperare l'ultima versione di una release di GitHub
Ordinare randomicamente una lista in C#
Simulare Azure Cosmos DB in locale con Docker
Esporre i propri servizi applicativi con Semantic Kernel e ASP.NET Web API
Combinare Container Queries e Media Queries
Filtrare i dati di una QuickGrid in Blazor con una drop down list
Creare una libreria CSS universale: Cards
Gestione CSS in Blazor con .NET 9