HttpRuntime.Cache .Net独自のキャッシュクラス
19563 ワード
.Netが持っているキャッシュは2つあり、1つはAspです.NetのキャッシュHttpContext.Cache、一つは.Netアプリケーションレベルのキャッシュ、HttpRuntime.Cache.
MSDNには、
HttpContext.Current.Cache:現在のHTTPリクエストのCacheオブジェクトを取得します.HttpRuntime.Cache:現在のアプリケーションのCacheを取得します.
ソースコードで確認すると、HttpContext.Current.Cacheが呼び出したのもHttpRuntimeだった.CacheでHttpContextはWebでしか呼び出せませんが、HttpRuntimeCacheは任意のアプリケーションセットで使用できるので、ここではキャッシュクラスとしてHttpRuntimeCacheを直接カプセル化して使用します.
コードは次のとおりです.
MSDNには、
HttpContext.Current.Cache:現在のHTTPリクエストのCacheオブジェクトを取得します.HttpRuntime.Cache:現在のアプリケーションのCacheを取得します.
ソースコードで確認すると、HttpContext.Current.Cacheが呼び出したのもHttpRuntimeだった.CacheでHttpContextはWebでしか呼び出せませんが、HttpRuntimeCacheは任意のアプリケーションセットで使用できるので、ここではキャッシュクラスとしてHttpRuntimeCacheを直接カプセル化して使用します.
コードは次のとおりです.
1 using System;
2 using System.Collections;
3 using System.Web;
4 using System.Web.Caching;
5 /**
6 * author:qixiao
7 * create2017-6-6 11:54:07
8 * */
9 namespace QX_Frame.Helper_DG
10 {
11 public class HttpRuntimeCache_Helper_DG
12 {
13 ///
14 /// Cache_Get
15 ///
16 /// cacheKey
17 ///
18 public static object Cache_Get(string cacheKey)
19 {
20 return HttpRuntime.Cache[cacheKey];
21 }
22
23 #region Cache Add
24
25 ///
26 /// Cache_Add
27 ///
28 /// key
29 /// object value
30 ///
31 /// , 。 , NULL。
32 /// , 。
33 ///
34 public static Boolean Cache_Add(string cacheKey, object cacheValue, int keepMinutes = 10, CacheDependency dependencies = null, CacheItemRemovedCallback cacheItemRemovedCallback = null)
35 {
36 HttpRuntime.Cache.Insert(cacheKey, cacheValue, dependencies, Cache.NoAbsoluteExpiration, TimeSpan.FromMinutes(keepMinutes), CacheItemPriority.NotRemovable, cacheItemRemovedCallback);
37 return true;
38 }
39
40 ///
41 /// Cache_Add
42 ///
43 /// key
44 /// object value
45 ///
46 /// , 。 , NULL。
47 /// , 。
48 ///
49 public static Boolean Cache_Add(string cacheKey, object cacheValue, DateTime expireTime, CacheDependency dependencies = null, CacheItemRemovedCallback cacheItemRemovedCallback = null)
50 {
51 HttpRuntime.Cache.Insert(cacheKey, cacheValue, dependencies, expireTime, Cache.NoSlidingExpiration, CacheItemPriority.NotRemovable, cacheItemRemovedCallback);
52 return true;
53 }
54
55 ///
56 /// Cache_Add
57 ///
58 /// key
59 /// object value
60 /// , 。 , NULL。
61 /// slidingExpiration, DateTime.MaxValue。 , ,.NET 2.0 , , 。
62 /// absoluteExpiration, TimeSpan.Zero。 , , absoluteExpiration 。
63 /// , “CacheItemPriority”, 。 。
64 /// , 。
65 //public static Boolean Cache_Add(string cacheKey, object cacheValue, CacheDependency dependencies = null, DateTime absoluteExpiration = default(DateTime), TimeSpan slidingExpiration = default(TimeSpan), CacheItemPriority cacheItemPriority = CacheItemPriority.NotRemovable, CacheItemRemovedCallback cacheItemRemovedCallback = null)
66 //{
67 // DateTime absoluteExpirationTime = default(DateTime);
68 // if (!DateTime.TryParse(absoluteExpiration.ToString(), out absoluteExpirationTime) || absoluteExpiration.Equals(default(DateTime)))
69 // absoluteExpirationTime = DateTime.MaxValue;
70 // else
71 // slidingExpiration = TimeSpan.Zero;
72
73 // TimeSpan slidingExpirationTime = default(TimeSpan);
74 // if (!TimeSpan.TryParse(slidingExpiration.ToString(), out slidingExpirationTime) || slidingExpiration.Equals(default(TimeSpan)))
75 // slidingExpirationTime = TimeSpan.Zero;
76
77 // HttpRuntime.Cache.Insert(cacheKey, cacheValue, dependencies, absoluteExpirationTime, slidingExpirationTime, cacheItemPriority, cacheItemRemovedCallback);
78 // return true;
79 //}
80
81 #endregion
82
83 ///
84 /// Cache_Delete
85 ///
86 /// cacheKey
87 public static Boolean Cache_Delete(string cacheKey)
88 {
89 HttpRuntime.Cache.Remove(cacheKey);
90 return true;
91 }
92
93 ///
94 /// Cache_DeleteAll
95 ///
96 public static Boolean Cache_DeleteAll()
97 {
98 Cache _cache = HttpRuntime.Cache;
99 IDictionaryEnumerator CacheEnum = _cache.GetEnumerator();
100 while (CacheEnum.MoveNext())
101 {
102 _cache.Remove(CacheEnum.Key.ToString());
103 }
104 return true;
105 }
106
107 ///
108 /// Cache Count
109 ///
110 public static int CacheCount
111 {
112 get { return HttpRuntime.Cache.Count; }
113 }
114 }
115 }