In questo script continuiamo ad analizzare le peculiarità dell'output cache in ASP.NET Web API, di cui abbiamo già parlato in precedenza:
- https://www.aspitalia.com/script/1225/Attivare-Output-Caching-ASP.NET-Web-API.aspx
- https://www.aspitalia.com/script/1226/Invalidare-Automaticamente-Output-Cache-ASP.NET-Web-API.aspx
In alcuni casi, vogliamo avere maggior controllo sulle logiche di invalidazione: per esempio, non ci basta marcare un'intera action con l'attribute InvalidateCacheOutput, ma vogliamo far sì che la cache sia rinnovata solo quando il salvataggio avviene effettivamente con successo. Per queste necessità possiamo utilizzare le API di invalidazione come nell'esempio seguente:
[CacheOutput(ClientTimeSpan = 10, ServerTimeSpan = 60)] public string Get() { ... } public void Post([FromBody]string value) { // salvataggio... var cache = Configuration .CacheOutputConfiguration() .GetCacheOutputProvider(Request); cache.RemoveStartsWith( Configuration .CacheOutputConfiguration() .MakeBaseCachekey((ValuesController c) => c.Get())); }
Grazie alla lambda expression, potremo specificare la action da invalidare con tanto di supporto dell'intellisense.
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Routing statico e PreRendering in una Blazor Web App
Ordinare randomicamente una lista in C#
Eseguire query verso tipi non mappati in Entity Framework Core
Usare una container image come runner di GitHub Actions
Paginare i risultati con QuickGrid in Blazor
Generare HTML a runtime a partire da un componente Razor in ASP.NET Core
Generare velocemente pagine CRUD in Blazor con QuickGrid
Definire stili a livello di libreria in Angular
Rinnovare il token di una GitHub App durante l'esecuzione di un workflow
Potenziare Azure AI Search con la ricerca vettoriale
Cancellare una run di un workflow di GitHub
Change tracking e composition in Entity Framework