using Abp.Dependency;
using Abp.Runtime.Caching.Configuration;
using Castle.Core.Logging;
namespace Abp.Runtime.Caching.Memory
{
///
/// Implements to work with MemoryCache.
///
public class AbpMemoryCacheManager : CacheManagerBase
{
public ILogger Logger { get; set; }
///
/// Constructor.
///
public AbpMemoryCacheManager(IIocManager iocManager, ICachingConfiguration configuration)
: base(iocManager, configuration)
{
Logger = NullLogger.Instance;
}
protected override ICache CreateCacheImplementation(string name)
{
return new AbpMemoryCache(name)
{
Logger = Logger
};
}
protected override void DisposeCaches()
{
foreach (var cache in Caches.Values)
{
cache.Dispose();
}
}
}
}