C# CacheHepler Class

?





1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

internal
class CacheHelper

    {

        /// <summary>

        /// Insert value into the cache using

        /// appropriate name/value pairs

        /// </summary>

        /// <typeparam name="T">Type of cached item</typeparam>

        /// <param name="o">Item to be cached</param>

        /// <param name="key">Name of item</param>

        public
static void Add<T>(T o, string
key)

        {

            // NOTE: Apply expiration parameters as you see fit.

            // In this example, I want an absolute

            // timeout so changes will always be reflected

            // at that time. Hence, the NoSlidingExpiration. 

            HttpContext.Current.Cache.Insert(

                key,

                o,

                null,

                DateTime.Now.AddMinutes(1440),

                System.Web.Caching.Cache.NoSlidingExpiration);

        }

        /// <summary>

        /// Remove item from cache

        /// </summary>

        /// <param name="key">Name of cached item</param>

        public
static void Clear(string
key)

        {

            HttpContext.Current.Cache.Remove(key);

        }

        /// <summary>

        /// Check for item in cache

        /// </summary>

        /// <param name="key">Name of cached item</param>

        /// <returns></returns>

        public
static bool Exists(string
key)

        {

            return
HttpContext.Current.Cache[key] != null;

        }

        /// <summary>

        /// Retrieve cached item

        /// </summary>

        /// <typeparam name="T">Type of cached item</typeparam>

        /// <param name="key">Name of cached item</param>

        /// <param name="value">Cached value. Default(T) if

        /// item doesn‘t exist.</param>

        /// <returns>Cached item as type</returns>

        public
static bool Get<T>(string
key, out
T value)

        {

            try

            {

                if
(!Exists(key))

                {

                    value = default(T);

                    return
false;

                }

                value = (T) HttpContext.Current.Cache[key];

            }

            catch

            {

                value = default(T);

                return
false;

            }

            return
true;

        }

使用方法:

?





1

2

3

4

5

6

7

8

9

10

11

12

13

14

public
override List<Employee> GetEmployeeList()

{

    string
key = ConfigurationHelper.CacheKeyEmployeeList;

    List<Employee> employees = CacheHelper.Get<List<Employee>>(key);

    if
(employees == null)

    {

        employees = instance.GetEmployeeList();

        CacheHelper.Add(employees, key);

    }

    return
employees;

}

时间: 2024-09-07 22:18:57

C# CacheHepler Class的相关文章