Мне нужно создать List<object>
и кешировать список и быть в состоянии добавить к нему. Мне также нужно уметь легко взорвать его и воссоздать. Что такое простой способ добиться этого?Простая реализация Cache ASP.NET ASP.NET
ответ
Нечто подобное возможно?
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");
}
}
А как использовать .....
// 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();
Ну ... исправный. Но я бы внес некоторые изменения. Прежде всего, я всегда возвращаю действительный список. Если этого не существует, создайте новую пустую коллекцию и кешируйте ее, а не просто возвращайте все, что находится в кеше [MyList], которое может быть нулевым. – Bryan
Да, Брайан, этот пример довольно прост. - Но я принял ваше предложение близко к сердцу и обновил свой образец. Благодарю. – jessegavin
Во многих сценариях реального мира вы хотите сбросить изменения в какое-то постоянное хранилище. – quillbreaker
Этот учебник является то, что я нашел, чтобы быть полезным
Вот пример
List<object> list = new List<Object>();
Cache["ObjectList"] = list; // add
list = (List<object>) Cache["ObjectList"]; // retrieve
Cache.Remove("ObjectList"); // remove
кэширования часть "Tracing and Caching Provider Wrappers for Entity Framework", в то время как не просто, по-прежнему довольно хороший обзор некоторых полезных вещей, чтобы думать о с кэшированием.
В частности, два класса InMemoryCache
и AspNetCache
и связанные с ними тесты:
подобно тому, что сделал этот вопрос, вы можете обернуть HttpRuntime.Cache
или HttpContext.Current.Items
или HttpContext.Current.Cache
в исполнении ICache
.
- 1. Простая реализация Hackable URL для ASP.NET (3.5)
- 2. asp.net cache advice
- 3. Singleton vs Cache ASP.NET
- 4. ASP.NET Cache - длительная работа
- 5. ASP.NET MVC Session Cache
- 6. asp.net mvc2 thumbnails cache
- 7. Cache Asp.Net не существует ASP.Net 5
- 8. Заголовки Cache-Control в ASP.NET
- 9. Простая загрузка файла ASP.NET
- 10. Простая asp.net функция
- 11. Cache реализация
- 12. Выемка Page Cache в ASP.NET
- 13. asp.net internet explorer pdf cache
- 14. Кэш Nhibernate vs asp.net cache
- 15. ASP.NET MVC 3 Cache Duration
- 16. ASP.NET Cache всегда возвращает null
- 17. Cache Render управления календаря ASP.NET
- 18. Cache Asp.net Mvc Домашняя страница
- 19. ASP.NET MVC Cache очищает себя
- 20. asp.net mvc disable ajax cache
- 21. ASP.NET Cache и File зависимости
- 22. Реализация OData для ASP.NET MVC
- 23. asp.net mvc Реализация ViewState
- 24. ASP.NET MVC CAPTCHA реализация
- 25. ASP.NET: Собственная реализация IsInRole
- 26. Реализация субсайта в ASP.NET
- 27. ASP.Net - реализация AJAX
- 28. Пользовательская реализация ASP.NET Identity
- 29. Реализация идентичности ASP.NET MVC5
- 30. Asp.net MVC Входная реализация
Имейте в виду, что ваш список не будет потокобезопасным. – dugas