我需要建立一个List<object>
并缓存列表并能够附加到它。我也需要能够轻松地吹掉它并重新创建它。什么是简单的方法来完成这一点?简单的C#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();
呃...有用。但我会做一些改变。首先,我总是会返回一个有效的列表。如果它不存在,则创建一个新的空集合并对其进行缓存,而不是只返回Cache [“MyList”]中可能为空的任何内容。 – Bryan
是的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
或在ICache
的实现中的或HttpContext.Current.Cache
。
- 1. 为POCO实现简单缓存
- 2. Redis缓存实现 - c#
- 3. LRU缓存C++实现
- 4. C++简单程序实现
- 5. 简单的C#ASP.net输出缓存帮助
- 6. ASP.NET的简单黑客URL实现(3.5)
- 7. 在Windows Phone 8.1类库中实现简单的缓存
- 8. C++最简单的LRU缓存容器
- 9. 缓存实现
- 10. 实现JavaScript ASP.NET C#的简单场景,提问的问题
- 11. 的缓存实现
- 12. 查看缓存错误 - 简单的C++缓存基准
- 13. PHP简单缓存
- 14. 在C++中实现简单的getopt
- 15. 如何实现简单的C++函数
- 16. 简单快捷的实现在C#
- 17. C++中简单的hashmap实现
- 18. c#asp.net MVC缓存
- 19. 简单的Html DOM缓存
- 20. javascript中的简单缓存
- 21. 在ASP.NET缓存中缓存EF实体
- 22. ASP.NET菜单缓存?
- 23. C#:如何实现智能缓存
- 24. 为C++实现缓存数据CGI
- 25. C#asp.net的DateTime缓存
- 26. 查询缓存的实现
- 27. SimpleScalar的缓存LRU实现
- 28. MRU的缓存实现
- 29. 锁定和简单缓存
- 30. 简单的OpenID实现
请记住您的列表不会是线程安全的。 – dugas