2010-11-05 3 views
1

Je voudrais être en mesure de déterminer l'âge d'un élément dans le cache HttpRuntime et je me demandais s'il y avait un moyen de le faire. Fondamentalement, ce que je dans ma classe est d'analyser un fichier XML tiers dans un objet, puis de stocker l'objet dans le cache. Plutôt que de définir une expiration sur l'objet dans le cache, je vais plutôt essayer d'extraire le XML mis à jour lorsque l'objet doit être actualisé pour que je puisse conserver mon objet mis en cache si l'analyseur échoue. Je suis également ouvert aux idées si quelqu'un a une idée de la façon d'accomplir ceci d'une manière différente/meilleure.Déterminer l'âge d'un objet dans le cache

Répondre

1

D'après votre description, il semble que vous devriez regarder le délégué CacheItemUpdateCallback.

Si vous l'utilisez, vous pouvez être averti avant que votre élément ne soit supprimé du cache.

Vous pouvez donc tenter de régénérer l'objet à partir de votre fichier XML mis à jour. Si l'analyse échoue, réinsérez l'objet d'origine.

+0

Je n'ai pas encore eu l'occasion de l'essayer, mais merci pour ce conseil. Cela ressemble à une meilleure solution. – Kyle

2

Vous pouvez créer une clé qui correspond à la clé des objets avec « _DATE » ou un autre suffixe

public object MyProperty 
{ 
    get { return HttpContext.Cache["MyKey"] as object; } 
    set 
    { 
     HttpContext.Cache["MyKey"] = value; 
     MyPropertyDate = DateTime.Now; 
    } 
} 

public DateTime MyPropertyDate 
{ 
    get { return HttpContext.Cache["MyKey_Date"] as DateTime; } 
    set { HttpContext.Cache["MyKey_Date"] = value; } 
} 
Questions connexes