Potrzebuję zbudować List<object>
i buforować listę i być w stanie do niej dołączyć. Muszę też móc go łatwo zdmuchnąć i odtworzyć. Jaki jest prosty sposób na osiągnięcie tego?Prosta implementacja pamięci podręcznej ASP.NET
Odpowiedz
Coś takiego może być?
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");
}
}
chodzi o sposób korzystania .....
// 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();
Cóż ... przydatny. Ale wprowadziłbym pewne zmiany. Przede wszystkim zawsze zwracam prawidłową listę. Jeśli nie istnieje, utwórz nową pustą kolekcję i zapisz ją w pamięci podręcznej, zamiast zwracać tylko to, co jest w pamięci podręcznej ["MyList"], które może mieć wartość zerową. – Bryan
Tak Bryan, ten przykład jest dość prosty. - Ale wziąłem twoją sugestię do serca i zaktualizowałem moją próbkę. Dzięki. – jessegavin
W wielu/najbardziej rzeczywistych scenariuszach będziesz chciał opróżnić zmiany do pewnego rodzaju trwałego przechowywania. – quillbreaker
Ten Tutorial jest to, co okaże się pomocne
Oto próbka
List<object> list = new List<Object>();
Cache["ObjectList"] = list; // add
list = (List<object>) Cache["ObjectList"]; // retrieve
Cache.Remove("ObjectList"); // remove
Części buforowanie "Tracing and Caching Provider Wrappers for Entity Framework", podczas gdy nie jest proste, są nadal dość dobry przegląd niektórych przydatnych rzeczy do przemyślenia z buforowania.
Konkretnie dwie klasy InMemoryCache
i AspNetCache
i związane z nimi testy:
podobny do tego kwestia zrobił, można owinąć HttpRuntime.Cache
lub HttpContext.Current.Items
lub HttpContext.Current.Cache
w implementacji ICache
.
- 1. Implementacja pamięci podręcznej HTTP (ETag) w ASP.NET Core Web API
- 2. "Prosta" implementacja narzędzia Trie
- 3. Równoważnik PHP obiektów aplikacji ASP.NET/pamięci podręcznej
- 4. Kiedy Asp.Net usuwa elementy wygasłych pamięci podręcznej?
- 5. Usługa pamięci podręcznej w pamięci podręcznej - Tridion 2011 SP1
- 6. Android: Strategia pamięci podręcznej obrazu i rozmiar pamięci podręcznej
- 7. Spring + Hibernate: Planowanie pamięci podręcznej Wykorzystanie pamięci podręcznej
- 8. Wygasanie pamięci podręcznej operacji z niestandardową ścieżką pamięci podręcznej
- 9. Uzyskiwanie dostępu do plików w pamięci podręcznej rozproszonej pamięci podręcznej
- 10. Czyszczenie pamięci podręcznej ActiveRecord
- 11. rozproszona technologia pamięci podręcznej
- 12. Wymuś usunięcie pamięci podręcznej
- 13. Maksymalny rozmiar pamięci podręcznej
- 14. Błędy pamięci podręcznej AppFabric
- 15. ASP.NET MVC: Utwórz obrazy pamięci podręcznej przeglądarki z działania
- 16. Prosta walidacja ASP.Net MVC 1.0
- 17. Podnieś implementację pamięci podręcznej lub uruchom własną?
- 18. Ile bajtów kontroler pamięci podręcznej pobiera czas z pamięci głównej do pamięci podręcznej L2?
- 19. Czyszczenie pamięci podręcznej obrazów Picasso
- 20. Zasady dotyczące pamięci podręcznej NSURLRequest
- 21. Objaśnienie domyślnego bufora/pamięci podręcznej
- 22. Czy file_get_contents używa pamięci podręcznej?
- 23. Capifony nie ociepli pamięci podręcznej
- 24. Chromecast: wyczyszczenie pamięci podręcznej odbiornika
- 25. Tabele statyczne pamięci podręcznej Mysql
- 26. Czyszczenie pamięci podręcznej zależności Grails
- 27. Nagłówki buforowania pamięci podręcznej MVC4
- 28. Brakujące błędy w pamięci podręcznej?
- 29. Lista zawartości pamięci podręcznej lakierów?
- 30. Ponowne próby pamięci podręcznej IIS
Należy pamiętać, że Twoja lista nie będzie bezpieczna dla wątków. – dugas