public async Task <ICache> Cache(CacheContainer cacheContainer, CacheConfiguration cacheConfiguration) { var cache = new Cache(cacheContainer, cacheConfiguration); await cache.Initialize(); return(cache); }
public Cache(CacheContainer container, CacheConfiguration cacheConfiguration) { _versionProvider = container.Resolve <IVersionProvider>(); _logger = container.Resolve <ILogger>(); _storage = new InMemoryStorageProxy(container.Resolve <IStorage>(), cacheConfiguration.InMemoryOnly); _cacheData = new CacheData(_storage, container.Resolve <ISerializer>(), cacheConfiguration, _logger); _timer = new Timer(SaveMappingsAndCheckLimits, null, cacheConfiguration.PeriodicOperationsDueTime, cacheConfiguration.PeriodicOperationsPeriodTime); }
internal DependencyManager(CacheContainer container, string name, Type type) { _container = container; _name = name; var c = type.GetTypeInfo().DeclaredConstructors.First(); _args = c.GetParameters() .ToDictionary <ParameterInfo, string, Func <object> >( x => x.Name, x => (() => container.Services[container.ServiceNames[x.ParameterType]]()) ); container.Services[name] = () => c.Invoke(_args.Values.Select(x => x()).ToArray()); }
public async Task <ICache> InMemoryCache(CacheContainer cacheContainer, CacheConfiguration cacheConfiguration) { cacheConfiguration.InMemoryOnly = true; return(await Cache(cacheContainer, cacheConfiguration)); }