Quelle est la différence entre HttpRuntime.Cache
et HttpContext.Current.Cache
?
Réponses
Trop de publicités?Je trouve le détail suivant dans http://theengineroom.provoke.co.nz/archive/2007/04/27/caching-using-httpruntime-cache.aspx
Pour la mise en cache, j'ai envisagé d'utiliser HttpContext.Current.Cache mais après avoir lire d'autres blogs, j'ai découvert que la mise en cache utilisant HttpContext utilise HttpRuntime.Cache pour réaliser la mise en mise en cache. L'avantage d'utiliser directement HttpRuntime est qu'il est toujours toujours disponible, par exemple, dans les Console et dans les tests unitaires. unitaires.
L'utilisation de HttpRuntime.Cache est simple. Les objets peuvent être stockés dans le cache et sont indexés par une chaîne de caractères. Avec une clé et l'objet à mettre en cache, l'autre paramètre important est le délai d'expiration. d'expiration. Ce paramètre définit le temps avant que l'objet ne soit retiré du cache.
Utilisation de HttpRuntime.Cache
est plus simple à utiliser que HttpContext.Current.Cache
Comme nous l'avons déjà dit, les objets peuvent être stockés dans le cache et sont indexés par une chaîne de caractères. HttpRuntime
ce disponible.
Voici un exemple à utiliser HttpRuntime.Cache
.
public static XmlDocument GetStuff(string sKey)
{
XmlDocument xmlCodes;
xmlCodes = (XmlDocument) HttpRuntime.Cache.Get( sKey );
if (xmlCodes == null)
{
xmlCodes = SqlHelper.ExecuteXml(new dn("Nodes", "Node"), "Get_Stuff_From_Database", sKey);
HttpRuntime.Cache.Add(sKey, xmlCodes, null,
DateTime.UtcNow.AddMinutes(1.0),
System.Web.Caching.Cache.NoSlidingExpiration,
System.Web.Caching.CacheItemPriority.Normal, null);
}
return xmlCodes;
}
Ce que fait cet exemple en réalité :
La méthode GetStuff
prend un paramètre de type chaîne de caractères qui est utilisé pour récupérer un ensemble d'éléments dans la base de données. La méthode vérifie d'abord si un XmlDocument
indexé par la clé du paramètre est dans le cache. Si c'est le cas, il renvoie simplement cet objet, sinon il interroge la base de données. Après avoir récupéré le document dans la base de données, il le place dans le cache. Si cette méthode est appelée à nouveau dans le délai imparti, elle récupère l'objet au lieu d'interroger la base de données.