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
Implementare il throttling in ASP.NET Core
Short-circuiting della Pipeline in ASP.NET Core
Potenziare Azure AI Search con la ricerca vettoriale
Registrare servizi multipli tramite chiavi in ASP.NET Core 8
Utilizzare Tailwind CSS all'interno di React: installazione
Utilizzare database e servizi con gli add-on di Container App
Le novità di Entity Framework 8
Estendere Microsoft 365 Copilot con .NET
Migliora la resilienza delle applicazioni con .NET e Azure Container Apps
Gestire undefined e partial nelle reactive forms di Angular
Utilizzare un service principal per accedere a Azure Container Registry