Ejemplo n.º 1
0
        /// <summary>
        /// Initializes a new instance of the <see cref="SquirrelCache"/> class.
        /// </summary>
        /// <param name="config">Configuration of the <see cref="SquirrelCache"/></param>
        /// <param name="cloningProvider">Cloning provider</param>
        /// <param name="serializationProvider">Serialization provider</param>
        public SquirrelCache(IFirstLevelCacheConfig config, IFirstLevelCacheCloningProvider cloningProvider, IMammothCacheSerializationProvider serializationProvider)
        {
            _config                = config;
            _cloningProvider       = cloningProvider;
            _serializationProvider = serializationProvider;

            if (_config.AbsoluteExpiration.TotalSeconds <= 0)
            {
                throw new ArgumentException("AbsoluteExpiration must be greater than 0");
            }

            if (_config.MaximumMemorySize <= 0)
            {
                throw new ArgumentException("MaximumMemorySize must be greater than 0");
            }

            if (_config.TimerInterval.TotalMilliseconds <= 0)
            {
                throw new ArgumentException("TimerInterval must be greater than 0");
            }

            _cache = new InMemoryCache(_config.TimerInterval, _config.MaximumMemorySize);
        }