web-dev-qa-db-fra.com

Utilisation de System.Web.Caching.Cache

J'essaie d'utiliser le cache, mais j'ai l'erreur ci-dessous. Comment utiliser correctement le cache?

protected void Page_Load(object sender, EventArgs e) {
x = System.DateTime.Now.ToString();
 if (Cache["ModifiedOn"] == null) { // first time so no key/value in Cache
    Cache.Insert("ModifiedOn", x); // inserts the key/value pair "Modified On", x            
 }
 else { // Key/value pair already exists in the cache
     x = Cache["ModifiedOn"].ToString();
 } }

'System.Web.Caching.Cache' est un 'type' mais est utilisé comme une 'variable'

15
Riz

System.Web.Caching.Cache : il s'agit de la mise en œuvre de la mise en cache .NET.

System.Web.HttpContext.Current.Cache : il s'agit de l'instance de cette implémentation, qui réside dans le domaine d'application.

Je pense que vous voulez utiliser le second si vous n'êtes pas dans le code derrière une page aspx. Utilisez Cache si vous êtes dans le code derrière une page aspx.

Vous pouvez également utiliser directement Page.Cache.Insert avec une référence au System.Caching.Cache via l'objet de page. Tout cela pointe vers le même cache d'application qui est global pour tous les utilisateurs.

43
coder net

Avoir quelque part que la classe stocke le HttpContext lorsqu’elle est initialisée par new ou avec une méthode Init()

Puis utilisez le HttpContext.Current.Cache

Ou: Créez des méthodes pour lire et écrire dans le cache avec un paramètre currentcache, et documentez-le avec un exemple de code où il est appelé avec HttpContext.Current.Cache

0
pashute