Gewusst wie: Hinzufügen von Elementen zum Cache
Aktualisiert: November 2007
Auf Elemente im Anwendungscache kann mit dem Cache-Objekt zugegriffen werden. Sie können dem Anwendungscache mit der Insert-Methode des Cache-Objekts ein Element hinzufügen. Die Methode fügt dem Cache ein Element hinzu und verfügt über mehrere Überladungen. Damit können Sie das Element mit verschiedenen Optionen zum Festlegen von Abhängigkeiten, Ablaufzeiten und Entfernungsbenachrichtigungen hinzufügen. Wenn Sie die Insert-Methode verwenden, um dem Cache ein Element hinzuzufügen, und ein Element mit demselben Namen bereits vorhanden ist, wird das vorhandene Element im Cache ersetzt.
Sie können dem Cache auch mithilfe der Add-Methode Elemente hinzufügen. Mit dieser Methode können Sie dieselben Optionen festlegen wie mit der Insert-Methode; die Add-Methode gibt jedoch das Objekt zurück, das Sie dem Cache hinzugefügt haben. Wenn Sie die Add-Methode verwenden und ein Element mit demselben Namen bereits im Cache vorhanden ist, wird außerdem das vorhandene Element nicht ersetzt, und es wird keine Ausnahme ausgelöst.
Die Prozeduren in diesem Thema veranschaulichen die folgenden Möglichkeiten, Elemente zum Anwendungscache hinzuzufügen:
Hinzufügen eines Elements zum Cache durch direktes Festlegen von Schlüssel und Wert.
Hinzufügen von Elementen zum Cache mithilfe der Insert-Methode.
Hinzufügen eines Elements zum Cache und Hinzufügen einer Abhängigkeit, sodass das Element aus dem Cache entfernt wird, wenn sich die Abhängigkeit ändert. Abhängigkeiten können auf Grundlage von anderen Cacheelementen, Dateien und von mehreren Objekten festgelegt werden.
Hinzufügen eines Elements zum Cache unter Verwendung von Ablaufrichtlinien. Zusätzlich zur Festlegung einer Abhängigkeit für ein Element können Sie dessen Ablaufzeit festlegen. Dies kann ein Zeitraum (gleitende Ablaufzeit) oder ein bestimmter Zeitpunkt (absolute Ablaufzeit) sein. Dabei kann entweder eine absolute oder eine gleitende Ablaufzeit definiert werden, jedoch nicht beides.
Hinzufügen eines Elements zum Cache und Definieren der relativen Priorität des zwischengespeicherten Elements. Mithilfe der relativen Prioritäten kann .NET Framework bestimmen, welche Cacheelemente zu entfernen sind; Elemente mit niedriger Priorität werden vor Elementen mit hoher Priorität entfernt.
Hinzufügen eines Elements durch Aufrufen der Add-Methode.
Zusätzlich zu den hier gezeigten Abhängigkeiten können Sie eine Abhängigkeit von einer Tabelle in SQL Server oder auf Grundlage einer benutzerdefinierten Abhängigkeit erstellen. Weitere Informationen finden Sie unter Übersicht über das Zwischenspeichern in ASP.NET und unter Zwischenspeichern in ASP.NET mithilfe der SqlCacheDependency-Klasse.
Mithilfe des CacheItemRemovedCallback-Delegaten können Sie auch dafür sorgen, dass die Anwendung vom Anwendungscache benachrichtigt wird, wenn das Element aus dem Cache entfernt wird. Ein vollständiges Beispiel finden Sie unter Gewusst wie: Benachrichtigen einer Anwendung beim Entfernen eines Elements aus dem Cache.
So fügen Sie dem Cache ein Element durch direktes Festlegen von Schlüssel und Wert hinzu.
Durch Angabe von Schlüssel und Wert fügen Sie Elemente dem Cache auf dieselbe Weise hinzu, wie Sie sie einem Wörterbuch hinzufügen würden.
Im folgenden Codebeispiel wird dem Cache-Objekt ein Element mit dem Namen CacheItem1 hinzugefügt:
Cache["CacheItem1"] = "Cached Item 1";
Cache("CacheItem1") = "Cached Item 1"
So fügen Sie dem Cache Elemente mithilfe der Insert-Methode hinzu
Rufen Sie die Insert-Methode auf, und übergeben Sie Schlüssel und Wert des hinzuzufügenden Elements.
Im folgenden Codebeispiel wird eine Zeichenfolge mit dem Namen CacheItem2 hinzugefügt:
Cache.Insert("CacheItem2", "Cached Item 2");
Cache.Insert("CacheItem2", "Cached Item 2")
So fügen Sie dem Cache ein Element durch Angeben einer Abhängigkeit hinzu
Rufen Sie die Insert-Methode auf, und übergeben Sie ihr eine Instanz des CacheDependency-Objekts
Im folgenden Codebeispiel wird ein Element mit dem Namen CacheItem3 hinzugefügt, das von einem anderen Element im Cache mit dem Namen CacheItem2 abhängig ist:
string[] dependencies = { "CacheItem2" }; Cache.Insert("CacheItem3", "Cached Item 3", new System.Web.Caching.CacheDependency(null, dependencies));
Dim dependencies As String() = {"CacheItem2"} Cache.Insert("CacheItem3", "Cached Item 3", _ New System.Web.Caching.CacheDependency( _ Nothing, dependencies))
Das folgende Codebeispiel zeigt ein Element mit dem Namen CacheItem4, das dem Cache hinzugefügt wird und für das eine Dateiabhängigkeit zu einer Datei mit dem Namen XMLFile.xml festgelegt wird:
Cache.Insert("CacheItem4", "Cached Item 4", new System.Web.Caching.CacheDependency( Server.MapPath("XMLFile.xml")));
Cache.Insert("CacheItem4", "Cached Item 4", _ New System.Web.Caching.CacheDependency( _ Server.MapPath("XMLFile.xml")))
Das folgende Codebeispiel zeigt, wie mehrfache Abhängigkeiten erstellt werden. Es wird eine Schlüsselabhängigkeit zu einem anderen Element im Cache mit dem Namen CacheItem1 und eine Dateiabhängigkeit zu der Datei mit dem Namen XMLFile.xml hinzugefügt.
System.Web.Caching.CacheDependency dep1 = new System.Web.Caching.CacheDependency(Server.MapPath("XMLFile.xml")); string[] keyDependencies2 = { "CacheItem1" }; System.Web.Caching.CacheDependency dep2 = new System.Web.Caching.CacheDependency(null, keyDependencies2); System.Web.Caching.AggregateCacheDependency aggDep = new System.Web.Caching.AggregateCacheDependency(); aggDep.Add(dep1); aggDep.Add(dep2); Cache.Insert("CacheItem5", "Cached Item 5", aggDep);
Dim dep1 As CacheDependency = _ New CacheDependency(Server.MapPath("XMLFile.xml")) Dim keyDependencies2 As String() = {"CacheItem1"} Dim dep2 As CacheDependency = _ New System.Web.Caching.CacheDependency(Nothing, _ keyDependencies2) Dim aggDep As AggregateCacheDependency = _ New System.Web.Caching.AggregateCacheDependency() aggDep.Add(dep1) aggDep.Add(dep2) Cache.Insert("CacheItem5", "Cached Item 5", aggDep)
So fügen Sie dem Cache ein Element unter Verwendung von Ablaufrichtlinien hinzu.
Rufen Sie die Insert-Methode auf, und übergeben Sie ihr eine absolute oder gleitende Ablaufzeitzeit.
Im folgenden Codebeispiel wird dem Cache ein Element mit einer absoluten Ablaufzeit von einer Minute hinzugefügt:
Cache.Insert("CacheItem6", "Cached Item 6", null, DateTime.Now.AddMinutes(1d), System.Web.Caching.Cache.NoSlidingExpiration);
Cache.Insert("CacheItem6", "Cached Item 6", _ Nothing, DateTime.Now.AddMinutes(1.0), _ TimeSpan.Zero)
Im folgenden Codebeispiel wird dem Cache ein Element mit einer gleitenden Ablaufzeit von 10 Minuten hinzugefügt:
Cache.Insert("CacheItem7", "Cached Item 7", null, System.Web.Caching.Cache.NoAbsoluteExpiration, new TimeSpan(0, 10, 0));
Cache.Insert("CacheItem7", "Cached Item 7", _ Nothing, System.Web.Caching.Cache.NoAbsoluteExpiration, _ New TimeSpan(0, 10, 0))
So fügen Sie dem Cache ein Element mit Prioritätseinstellungen hinzu
Rufen Sie die Insert-Methode auf, und geben Sie hierbei einen Wert aus der CacheItemPriority-Enumeration an.
Im folgenden Codebeispiel wird dem Cache ein Element mit einem Prioritätswert von High hinzugefügt:
Cache.Insert("CacheItem8", "Cached Item 8", null, System.Web.Caching.Cache.NoAbsoluteExpiration, System.Web.Caching.Cache.NoSlidingExpiration, System.Web.Caching.CacheItemPriority.High, null);
Cache.Insert("CacheItem8", "Cached Item 8", _ Nothing, System.Web.Caching.Cache.NoAbsoluteExpiration, _ System.Web.Caching.Cache.NoSlidingExpiration, _ System.Web.Caching.CacheItemPriority.High, _ Nothing)
So fügen Sie dem Cache ein Element mithilfe der Add-Methode hinzu
Rufen Sie die Add-Methode auf, die ein Objekt zurückgibt, das das Element darstellt.
Im folgenden Codebeispiel wird dem Cache ein Element mit dem Namen CacheItem9 hinzugefügt und der Wert der Variable CachedItem9 so festgelegt, dass sie zum Element wird, das hinzugefügt wurde.
string CachedItem9 = (string)Cache.Add("CacheItem9", "Cached Item 9", null, System.Web.Caching.Cache.NoAbsoluteExpiration, System.Web.Caching.Cache.NoSlidingExpiration, System.Web.Caching.CacheItemPriority.Default, null);
Dim CachedItem9 As String = CStr(Cache.Add("CacheItem9", _ "Cached Item 9", Nothing, _ System.Web.Caching.Cache.NoAbsoluteExpiration, _ System.Web.Caching.Cache.NoSlidingExpiration, _ System.Web.Caching.CacheItemPriority.Default, _ Nothing))
Siehe auch
Aufgaben
Gewusst wie: Löschen von Elementen aus dem Cache in ASP.NET
Gewusst wie: Benachrichtigen einer Anwendung beim Entfernen eines Elements aus dem Cache
Gewusst wie: Abrufen von Werten von zwischengespeicherten Elementen
Konzepte
Übersicht über das Zwischenspeichern in ASP.NET
Zwischenspeichern von Anwendungsdaten
Zwischenspeichern in ASP.NET mithilfe der SqlCacheDependency-Klasse