///------------------------------------------------------------------------------------------------- /// <summary> /// Releases the unmanaged resources used by the Hyperstore.Modeling.Domain.DomainModel and /// optionally releases the managed resources. /// </summary> /// <param name="disposing"> /// true to release both managed and unmanaged resources; false to release only unmanaged /// resources. /// </param> ///------------------------------------------------------------------------------------------------- protected virtual void Dispose(bool disposing) { var tmp = DomainUnloaded; if (tmp != null) { tmp(this, new EventArgs()); } if (L1Cache != null) { L1Cache.Dispose(); } var disposable = InnerGraph as IDisposable; if (disposable != null) { disposable.Dispose(); } InnerGraph = null; disposable = _commandManager as IDisposable; if (disposable != null) { disposable.Dispose(); } _commandManager = null; disposable = _eventManager as IDisposable; if (disposable != null) { disposable.Dispose(); } _eventManager = null; disposable = IdGenerator as IDisposable; if (disposable != null) { disposable.Dispose(); } IdGenerator = null; disposable = _modelElementFactory as IDisposable; if (disposable != null) { disposable.Dispose(); } _modelElementFactory = null; Services.Dispose(); _disposed = true; }
///------------------------------------------------------------------------------------------------- /// <summary> /// Determines if we can configure core. /// </summary> /// <returns> /// true if it succeeds, false if it fails. /// </returns> ///------------------------------------------------------------------------------------------------- protected virtual bool ConfigureCore() { if (_initialized) { return(true); } _initialized = true; Statistics = new DomainStatistics(); OnInitializing(); _eventManager = Resolve(ResolveEventManager); IdGenerator = Resolve(ResolveIdGenerator); _modelElementFactory = Resolve(ResolveModelElementFactory); _commandManager = Resolve(ResolveCommandManager); InnerGraph = Resolve(ResolveHyperGraph); L1Cache = new Level1Cache(this); OnInitialized(); return(false); }