NET Caching Library Help
Memory Cache Provider
Examples > Memory Cache Provider

The memory cache provider is built on top of the System.Runtime.Caching  memory cache provider in the .NET Framework.  It has been extended to support regions.

Defaults for the memory cache provider

       MaxMegabytes - 10  

       MaxCacheItems - Int32.MaxValue 

       DefaultExpirationInMinutes - 20 

 

Example

 

   

    public class MemoryCacheExample

    {

       

        public void MemoryCacheExampleUsage()

        {

            //Build parameters for the report

            Dictionary<string, object> parms = new Dictionary<string, object>();

            parms.Add("Month", DateTime.Now.Month);

            parms.Add("Year", DateTime.Now.Year);

            //Get the cache key based on the report parameters

            string cacheKey = Cache.Instance.BuildCacheKey("MonthlySalesReport", parms);

            //Get the report from the cache, if it does not exist, call the ReportLogic.MonthlySalesReport, save it to the cache and return it

            List<ReportDetail> result = Cache.Instance.Get<List<ReportDetail>>(cacheKey, NetCachingLibraryTest.ReportLogic.MonthlySalesReport, parms);

        }

    }

    public static class Cache

    {

        private static SmartCache _smartCache;

        private static void Setup()

        {

            //Memory Cache Provider with no secondary cache provider

            SmartConfig config = new SmartConfig(new MemoryCacheProvider(), null);

 

            //Specify UserName and LicenseKey for Licensed Mode

            //config.UserName = "my user name";

            //config.LicenseKey = "my license key";

 

            _smartCache = new SmartCache(config);

        }

        public static SmartCache Instance

        {

            get

            {

                if (_smartCache == null)

                    Setup();

                return _smartCache;

            }

        }

    }

    public static class ReportLogic

    {

        //Example long running report

        public static List<ReportDetail> MonthlySalesReport(Dictionary<string, object> parms)

        {

            System.Threading.Thread.Sleep(1000);

            List<ReportDetail> list = new List<ReportDetail>();

            list.Add(new ReportDetail("Midwest", 233457.47m));

            list.Add(new ReportDetail("Southern", 234789.88m));

            return list;

        }

    }