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
Generare HTML a runtime a partire da un componente Razor in ASP.NET Core
Creare una libreria CSS universale: i bottoni
Migliorare i tempi di risposta di GPT tramite lo streaming endpoint in ASP.NET Core
Filtrare i dati di una QuickGrid in Blazor con una drop down list
Esporre i propri servizi applicativi con Semantic Kernel e ASP.NET Web API
Esportare ed analizzare le issue di GitHub con la CLI e GraphQL
Path addizionali per gli asset in ASP.NET Core MVC
Ottimizzare la latenza in Blazor 8 tramite InteractiveAuto render mode
Assegnare un valore di default a un parametro di una lambda in C#
Utilizzare QuickGrid di Blazor con Entity Framework
Creazione di plugin per Tailwind CSS: espandere le funzionalità del framework dinamicamente
Effettuare il refresh dei dati di una QuickGrid di Blazor