我需要建立一個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