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 }; }
private static MemCacheSettings SettingsOrDefault(MemCacheSettings settings) { return(settings ?? MemCacheSettings.Default()); }