HttpRuntime.Cache fornisce solo metodi severals e penso che io sono in grado di implementare questi metodi con dizionario da me.
Tu pensi sbagliato. HttpRuntime.Cache è molto più di un semplice dizionario. Offre politiche di sicurezza del thread e di scadenza della cache. Fornisce possibilità di utilizzo dell'implementazione personalizzata e beneficia del caching distribuito, utile nelle web farm. L'implementazione di questo con i dizionari potrebbe essere un sacco di lavoro su cui probabilmente non vorrai avventurarti, dato che in pratica dovrai reinventare le ruote e anche se reinventare le ruote non ti dà fastidio, le possibilità di farle bene sono snelle.
2) Se HttpRuntime.Cache è molto meglio del dizionario, perché alcune persone desiderano implementare il proprio framework cache.
Le persone non vorrebbero farlo.
3) Che ne dici di MS Enterprise Cache Block?
Questa è l'artiglieria pesante che non è sempre necessaria quando è necessario un semplice caching che potrebbe essere ottenuto con ciò che la struttura fornisce già fuori dalla scatola.
Nota: In .NET 4.0 si dovrebbe usare il nuovo System.Runtime.Caching spazio dei nomi invece di HttpRuntime.Cache
.
Quindi, per rispondere alla tua domanda: Should I use HttpRuntime.Cache
Sì, a meno che non si sta utilizzando .NET 4.0, nel qual caso si dovrebbe usare le classi dalla nuova System.Runtime.Caching
namespace.
fonte
2011-11-11 10:11:19
Grazie per la tua meravigliosa risposta. Ho un'altra domanda: ho visto alcune persone utilizzare HttpRuntime.Cache in un'applicazione non web come Console, penso che sia un po 'strano. L'hai mai visto? –
@ Domi.Zhang, sì, l'ho visto. Funziona ma richiede una dipendenza dall'assembly System.Web. Questo è il motivo per cui Microsoft ha deciso di esternalizzare la memorizzazione nella cache in un assembly separato in .NET 4.0. –
Darin, Cosa succede se desidero i tempi di scadenza come nella cache di Httpruntime? Non riuscivo a trovarlo in System.Runtime.Caching –