Continua l'analisi della classe Cache di ASP.NET, questa volta con un esempio relativo alla File Dependency.
E' possibile infatti definire una chiave con dati all'interno che dipenda dalla modifica di un file per invalidarne il contenuto.
Questo approccio è particolarmente utile quando vogliamo caricare un file XML in un DataTable, ma allo stesso tempo vogliamo che il contenuto sia sempre aggiornato.
In particolare, attraverso la classe FileSystemWatcher, ASP.NET è in grado di intercettare le notifiche che il sistema operativo invia quando un file viene modificato e di conseguenza invalidare il contenuto della chiave che definisce l'oggetto in Cache.
using System; using System.Web; using System.Data; namespace ASPItalia.com { public class DataStore { // funzione per recuperare un DataTable caricato da un file Xml public static DataTable GetXmlDoc() { if (HttpContext.Current.Cache["Xml"] == null) { string Path = HttpContext.Current.Server.MapPath("/store/doc.xml"); // leggo il file XML attraverso il DataSet DataSet ds = new DataSet(); ds.ReadXml(Path); // restituisce la DataTable DataTable dt = ds.Tables["item"]; // inserimento nella Cache con dipendenza HttpContext.Current.Cache.Insert("Xml", dt, new CacheDependency(Path) ); } return (DataTable)HttpContext.Current.Cache["Xml"]; } } }
Approfondimenti
#349 - Estrarre il contenuto di un file XML con ASP.NET
https://www.aspitalia.com/liste/usag/script.aspx?ID=349
Esempi di utilizzo della classe Cache con ASP.NET
https://www.aspitalia.com/ricerca/super.aspx?usag=1&articoli=1&key=ASP.NET+cache
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.