Example #1
0
        /// <summary>
        /// IoC Constructor - initializes a new instance of the <see cref="Memocache"/> class.
        /// </summary>
        /// <param name="cache">The cache.</param>
        /// <param name="logger">The logger.</param>
        public Memocache(ICache cache, IMemocacheLog logger)
        {
            Contract.Requires(cache != null, "An ICache instance is required.");
            Contract.Requires(logger != null, "An IMemocacheLog instance is required.");

            _log = logger;

            _log.CreatingMemoCache(cache.Name);

            _cache = cache;

            _log.CreatedMemoCache();
        }
Example #2
0
        /// <summary>
        /// Creates a new memocache instance with optional name and cache policy
        /// </summary>
        /// <param name="name">The name to assign to the memocache. Do <em>not</em> use the name 'default'</param>
        /// <param name="defaultPolicy">The <see cref="CacheItemPolicy"/> to use as default for new entries</param>
        /// <param name="cache">Injected cache implementation if default <see cref="MemoryCache"/> not wanted.</param>
        /// <param name="logger">The <see cref="IMemocacheLog"/> instance to use for logging.</param>
        public Memocache(string name, CacheItemPolicy defaultPolicy, ICache cache = null, IMemocacheLog logger = null)
        {
            Contract.Requires(String.Equals(name, "default", StringComparison.OrdinalIgnoreCase) == false, "Do not use the name 'default' as that is the default name");
            Contract.Requires(name == null || name.Length > 0);

            _log = logger ?? new NullLog();

            _log.CreatingMemoCache(name);

            Name = name;

            _cache = cache ?? new CacheImplementation(Name);

            if (defaultPolicy != null)
            {
                _cache.DefaultPolicy = defaultPolicy;
            }

            _log.CreatedMemoCache();
        }