Пример #1
0
        public async Task <ICache> Cache(CacheContainer cacheContainer, CacheConfiguration cacheConfiguration)
        {
            var cache = new Cache(cacheContainer, cacheConfiguration);
            await cache.Initialize();

            return(cache);
        }
Пример #2
0
 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);
 }
Пример #3
0
            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());
            }
Пример #4
0
 public async Task <ICache> InMemoryCache(CacheContainer cacheContainer, CacheConfiguration cacheConfiguration)
 {
     cacheConfiguration.InMemoryOnly = true;
     return(await Cache(cacheContainer, cacheConfiguration));
 }