/// <summary> /// Method that allows the object to initialize itself. Passes the property map down /// the object hierarchy so that other objects may configure themselves as well.. /// </summary> /// <param name="properties">configuration properties</param> protected override void Initialize(IDictionary cacheClasses, IDictionary properties) { if (properties == null) { throw new ArgumentNullException("properties"); } try { base.Initialize(cacheClasses, properties); _allowExplicitGCCollection = ServiceConfiguration.EnableGCCollection; if (!properties.Contains("storage")) { throw new ConfigurationException("Missing configuration option 'storage'"); } if (properties.Contains("scavenging-policy")) { IDictionary evictionProps = properties["scavenging-policy"] as IDictionary; if (Convert.ToDouble(evictionProps["evict-ratio"]) > 0) { _evictionPolicy = EvictionPolicyFactory.CreateEvictionPolicy(evictionProps, _context.NCacheLog); } } else { _evictionPolicy = EvictionPolicyFactory.CreateDefaultEvictionPolicy(); } IDictionary storageProps = properties["storage"] as IDictionary; _cacheStore = CacheStorageFactory.CreateStorageProvider(storageProps, this._context.SerializationContext, _evictionPolicy != null, _context.NCacheLog, null); _cacheStore.ISizableMessageStore = _topicManager; _stats.MaxCount = _cacheStore.MaxCount; _stats.MaxSize = _cacheStore.MaxSize; } catch (ConfigurationException e) { if (_context != null) { _context.NCacheLog.Error("LocalCache.Initialize()", e.ToString()); } Dispose(); throw; } catch (Exception e) { if (_context != null) { _context.NCacheLog.Error("LocalCache.Initialize()", e.ToString()); } Dispose(); throw new ConfigurationException("Configuration Error: " + e.ToString(), e); } }
/// <summary> /// Inicializa a instancia. /// </summary> /// <param name="cacheClasses"></param> /// <param name="properties"></param> protected override void Initialize(IDictionary cacheClasses, IDictionary properties) { properties.Require("properties").NotNull(); try { base.Initialize(cacheClasses, properties); if (!properties.Contains("storage")) { throw new Colosoft.Caching.Exceptions.ConfigurationException(ResourceMessageFormatter.Create(() => Properties.Resources.ConfigurationException_MissingOption, "storage").Format()); } if (properties.Contains("scavenging-policy")) { IDictionary dictionary = properties["scavenging-policy"] as IDictionary; if ((dictionary.Contains("eviction-enabled") && Convert.ToBoolean(dictionary["eviction-enabled"])) && (Convert.ToDouble(dictionary["evict-ratio"]) > 0.0)) { _evictionPolicy = EvictionPolicyFactory.CreateEvictionPolicy(dictionary); } } else { _evictionPolicy = EvictionPolicyFactory.CreateDefaultEvictionPolicy(); } IDictionary dictionary2 = properties["storage"] as IDictionary; _cacheStore = CacheStorageFactory.CreateStorageProvider(dictionary2, base._context.SerializationContext, _evictionPolicy != null, base._context.Logger); } catch (Colosoft.Caching.Exceptions.ConfigurationException exception) { if (base._context != null) { base._context.Logger.Error("LocalCache.Initialize()".GetFormatter(), exception.GetFormatter()); } this.Dispose(); throw; } catch (Exception exception2) { if (base._context != null) { base._context.Logger.Error("LocalCache.Initialize()".GetFormatter(), exception2.GetFormatter()); } this.Dispose(); throw new Colosoft.Caching.Exceptions.ConfigurationException("Configuration Error: " + exception2.ToString(), exception2); } }