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
Utilizzare DeepSeek R1 con Azure AI
Implementare l'infinite scroll con QuickGrid in Blazor Server
Creare una libreria CSS universale: Nav menu
Autenticarsi in modo sicuro su Azure tramite GitHub Actions
Creare un webhook in Azure DevOps
Path addizionali per gli asset in ASP.NET Core MVC
Utilizzare QuickGrid di Blazor con Entity Framework
Recuperare App Service cancellati su Azure
Aprire una finestra di dialogo per selezionare una directory in WPF e .NET 8
Eseguire operazioni sui blob con Azure Storage Actions
Miglioramenti nelle performance di Angular 16
Filtrare i dati di una QuickGrid in Blazor con una drop down list