Ich muss eine List<object>
aufbauen und die Liste zwischenspeichern und in der Lage sein, daran anzufügen. Ich muss es auch einfach wegblasen und neu erschaffen können. Was ist ein einfacher Weg, dies zu erreichen? Dieses TutorialEinfache C# ASP.NET-Cache-Implementierung
Antwort
So etwas wie dieses vielleicht?
using System;
using System.Collections.Generic;
using System.Web;
public class MyListCache
{
private List<object> _MyList = null;
public List<object> MyList {
get {
if (_MyList == null) {
_MyList = (HttpContext.Current.Cache["MyList"] as List<object>);
if (_MyList == null) {
_MyList = new List<object>();
HttpContext.Current.Cache.Insert("MyList", _MyList);
}
}
return _MyList;
}
set {
HttpContext.Current.Cache.Insert("MyList", _MyList);
}
}
public void ClearList() {
HttpContext.Current.Cache.Remove("MyList");
}
}
Was, wie ..... verwenden
// Get an instance
var listCache = new MyListCache();
// Add something
listCache.MyList.Add(someObject);
// Enumerate
foreach(var o in listCache.MyList) {
Console.WriteLine(o.ToString());
}
// Blow it away
listCache.ClearList();
Gut ... brauchbar. Aber ich würde einige Änderungen vornehmen. In erster Linie würde ich immer eine gültige Liste zurückgeben. Wenn es nicht existiert, erstellen Sie eine neue leere Sammlung und cachen Sie sie, anstatt nur den Inhalt von Cache ["MeineListe"] zurückzugeben, der null sein könnte. – Bryan
Ja Bryan, dieses Beispiel ist ziemlich einfach. - Aber ich habe Ihren Vorschlag beherzigt und meine Probe aktualisiert. Vielen Dank. – jessegavin
In vielen/meisten realen Szenarien werden Sie Änderungen in einer Art persistenten Speicher ablegen wollen. – quillbreaker
ist, was ich hilfreich sein gefunden
Hier ist ein Beispiel
List<object> list = new List<Object>();
Cache["ObjectList"] = list; // add
list = (List<object>) Cache["ObjectList"]; // retrieve
Cache.Remove("ObjectList"); // remove
Die Caching-Teile "Tracing and Caching Provider Wrappers for Entity Framework", die zwar nicht einfach, sind immer noch eine ziemlich gute Übersicht über einige nützliche Dinge über mit Caching zu denken.
Insbesondere die beiden Klassen InMemoryCache
und AspNetCache
und die dazugehörigen Tests:
Ähnlich wie die Frage tat, könnten Sie wickeln HttpRuntime.Cache
oder HttpContext.Current.Items
oder HttpContext.Current.Cache
in einer Implementierung von ICache
.
- 1. C++ einfache Programmfehler
- 2. Einfache C char Frage
- 3. Einfache C Zeiger Verwirrung
- 4. einfache C + + Binärdatei lesen
- 5. Einfache C# WPF TreeView
- 6. C# jquery einfache Dialogbox
- 7. C++ Einfache Variante Boost
- 8. Einfache C Pointer Clarification
- 9. Einfache C# Ausgabe
- 10. Einfache Komprimierung in C++
- 11. Einfache Reflektion Frage C#
- 12. Einfache C Frage
- 13. C# Polymorphismus einfache Frage
- 14. Einfache C++ Instant Messenger
- 15. C++ einfache Threads Beispiel
- 16. C#/Regex, einfache Frage
- 17. Einfache Blasensortierung C#
- 18. Einfache C# Bildschirmfreigabe-Anwendung
- 19. einfache C++ Funktionen
- 20. Sehr einfache C-Funktion
- 21. StackExchange.Redis einfache C# Beispiel
- 22. Einfache C# RESTfull Client
- 23. Einfache C scanf funktioniert nicht?
- 24. C#: Einfache TCP-Server-Frage
- 25. Einfache Array-Summe in C++
- 26. einfache Zeichenfolge Laufzeitfehler in C?
- 27. Einfache zuverlässige UDP C++ - Bibliotheken
- 28. Marshalling einfache Zeichenfolge in C#
- 29. Einfache C Inline-Linker-Fehler
- 30. C-Programm: Einfache Mathematik-Programm
Denken Sie daran, dass Ihre Liste nicht threadsicher ist. – dugas