puoi li, come puoi estendere le proprietà di una pagina web e rendere disponibile una tua property che si occupa di questo meccanismo, come nel seguente esempio:
codice:
public class MyPage : System.Web.UI.Page {
...
public DataTable Comuni {
get {
DataTable comuni = null;
if(HttpContext.Current.Application.Get("Comuni") != null) {
comuni = (DataTable)HttpContext.Current.Application.Get("Comuni");
}
else {
comuni = new DbContext().GetComuni();
HttpContext.Current.Application.Lock();
HttpContext.Current.Application.Add("Comuni", comuni);
HttpContext.Current.Application.Unlock();
}
return comuni;
}
}
}
In questo modo, quando la risorsa viene richiesta, la prima volta viene caricata, nelle richieste successive viene fornito il dato presente nel contenitore Application.
La cosa più importante è quella che ho messo in grassetto, Lock ed UnLock per preservare il contenuto di Application.
Spero di essere stato d'aiuto!