Exemple #1
0
        /// <summary>
        /// 获取领域缓存(指定特定 的IBaseObjectCacheStrategy 缓存策略对象)
        /// </summary>
        /// <param name="baseObjectCacheStrategy">IBaseObjectCacheStrategy 缓存策略对象</param>
        /// <param name="cacheStrategyDomain">缓存领域</param>
        /// <returns></returns>
        public static IDomainExtensionCacheStrategy GetDomainExtensionCacheStrategy(IBaseObjectCacheStrategy baseObjectCacheStrategy,
                                                                                    ICacheStrategyDomain cacheStrategyDomain)
        {
            var identityName      = cacheStrategyDomain.IdentityName;
            var mappingCollection = GetMappingCollection(identityName);//当前扩展缓存可能已经注册的所有基础缓存

            if (mappingCollection.ContainsKey(baseObjectCacheStrategy))
            {
                var item = mappingCollection[baseObjectCacheStrategy];
                return(item.DomainExtensionCacheStrategy);
            }
            else
            {
                //未注册,默认情况下使用本地缓存策略(应急)
                var ex = new Exceptions.UnregisteredDomainCacheStrategyException(cacheStrategyDomain.GetType(), baseObjectCacheStrategy.GetType());
                SenparcTrace.BaseExceptionLog(ex);
                throw ex;
            }
        }