#581 - Cache con dipendenza su file con ASP.NET

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"];
    }
  }
}

Per approfondimenti si veda:

#349 - Estrarre il contenuto di un file XML con ASP.NET
http://www.aspitalia.com/liste/usag/script.aspx?ID=349

Esempi di utilizzo della classe Cache con ASP.NET
http://www.aspitalia.com/ricerca/super.aspx?usag=1&articoli=1&key=ASP.NET+cache


Approfondimenti

Commenti

Esprimi il tuo giudizio su questo script:

Per procedere devi essere autenticato.

Aggiungi un nuovo commento »»»
Per inserire un commento, devi registrarti alla nostra community.




IN EVIDENZA
MISC