Exemplo n.º 1
0
        public ServiceBase Get(ServiceNames serviceName)
        {
            if (_cache.Contains(serviceName.ToString()))
            {
                var item    = (CacheItem)_cache[serviceName.ToString()];
                var service = (ServiceBase)item.Value;

                var policy = new CacheItemPolicy
                {
                    AbsoluteExpiration = DateTime.UtcNow.AddSeconds(service.Timeout)
                };

                _cache.Set(serviceName.ToString(), item, policy);

                Console.WriteLine("From Cache");
                return(service);
            }
            else
            {
                ServiceBase service = ServiceFactory.Get(serviceName);

                var policy = new CacheItemPolicy
                {
                    AbsoluteExpiration = DateTime.UtcNow.AddSeconds(service.Timeout)
                };
                var cacheItem = new CacheItem(serviceName.ToString(), service);
                _cache.Set(serviceName.ToString(), cacheItem, policy);

                Console.WriteLine("New");
                return(service);
            }
        }