/// <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; } }
/// <summary> /// 获取指定领域缓存的换存策略 /// </summary> /// <param name="cacheStrategyDomain">领域缓存信息(需要为单例)CacheStrategyDomain</param> /// <returns></returns> public static IDomainExtensionCacheStrategy GetExtensionCacheStrategyInstance(ICacheStrategyDomain cacheStrategyDomain) { var currentObjectCacheStrategy = GetObjectCacheStrategyInstance(); var domianExtensionCacheStrategy = CacheStrategyDomainWarehouse.GetDomainExtensionCacheStrategy(currentObjectCacheStrategy, cacheStrategyDomain); return(domianExtensionCacheStrategy); }