Exemple #1
0
        public MemCache(Func <T, TKey> keySelector,
                        MemCacheSettings settings = null) : base(nameof(T),
                                                                 new NameValueCollection()
        {
            ["cacheMemoryLimitMegabytes"]     = SettingsOrDefault(settings).MemoryLimitMegabytes.ToString(),
            ["physicalMemoryLimitPercentage"] = SettingsOrDefault(settings).PhysicalMemoryLimitPercentage.ToString(),
            ["pollingInterval"] = SettingsOrDefault(settings).PollingInterval.ToString(@"hh\:mm\:ss", CultureInfo.InvariantCulture),
        })
        {
            if (keySelector == null)
            {
                throw new ArgumentNullException(nameof(keySelector));
            }
            _keySelector = keySelector;

            settings = SettingsOrDefault(settings);

            _uniformPolicy = new CacheItemPolicy()
            {
                SlidingExpiration = settings.SlidingExpiration
            };
        }
Exemple #2
0
 private static MemCacheSettings SettingsOrDefault(MemCacheSettings settings)
 {
     return(settings ?? MemCacheSettings.Default());
 }