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
Inference di dati strutturati da testo con Semantic Kernel e ASP.NET Core Web API
Ottimizzare le performance usando Span<T> e il metodo Split
Cancellare una run di un workflow di GitHub
Popolare una classe a partire dal testo, con Semantic Kernel e ASP.NET Core Web API
Proteggere le risorse Azure con private link e private endpoints
Conoscere il rendering Server o WebAssembly a runtime in Blazor
Filtering sulle colonne in una QuickGrid di Blazor
Sfruttare GPT-4o realtime su Azure Open AI per conversazioni vocali
Combinare Container Queries e Media Queries
Filtrare i dati di una QuickGrid in Blazor con una drop down list