예제 #1
0
        public override ICallHandler CreateHandler(IUnityContainer container)
        {
            var expiration         = new TimeSpan(Hours, Minutes, Seconds);
            var absoluteExpiration = new TimeSpan(AbsoluteHours, AbsoluteMinutes, AbsoluteSeconds);
            var maximumStaleness   = new TimeSpan(MaximumStalenessHours, MaximumStalenessMinutes, MaximumStalenessSeconds);

            //default to 5 minutes if necessary
            expiration = expiration.TotalSeconds > 0 ? expiration : new TimeSpan(0, 5, 0);
            //default to twice expiration
            maximumStaleness = maximumStaleness.TotalSeconds > 0 ? maximumStaleness
                : expiration.Add(expiration);

            var handler = new CacheAttributeCallHandler(container, CacheName)
            {
                Order              = Order,
                Expiration         = expiration,
                AbsoluteExpiration = absoluteExpiration.TotalSeconds > 0 ? absoluteExpiration : (TimeSpan?)null,
                MaximumStaleness   = maximumStaleness,
                RescheduleStale    = RescheduleStale
            };

            return(handler);
        }
예제 #2
0
        public override ICallHandler CreateHandler(IUnityContainer container)
        {
            var expiration = new TimeSpan(Hours, Minutes, Seconds);
            var absoluteExpiration = new TimeSpan(AbsoluteHours, AbsoluteMinutes, AbsoluteSeconds);
            var maximumStaleness = new TimeSpan(MaximumStalenessHours, MaximumStalenessMinutes, MaximumStalenessSeconds);

            //default to 5 minutes if necessary
            expiration = expiration.TotalSeconds > 0 ? expiration : new TimeSpan(0, 5, 0);
            //default to twice expiration
            maximumStaleness = maximumStaleness.TotalSeconds > 0 ? maximumStaleness
                : expiration.Add(expiration);

            var handler = new CacheAttributeCallHandler(container, CacheName)
            {
                Order = Order,
                Expiration = expiration,
                AbsoluteExpiration = absoluteExpiration.TotalSeconds > 0 ? absoluteExpiration : (TimeSpan?)null,
                MaximumStaleness = maximumStaleness,
                RescheduleStale = RescheduleStale
            };

            return handler;
        }