public void RegisterAndGetTest() { //»¹ÔĬÈÏ»º´æ״̬ CacheStrategyFactory.RegisterObjectCacheStrategy(() => LocalObjectCacheStrategy.Instance); //×¢²á CacheStrategyDomainWarehouse.RegisterCacheStrategyDomain(TestExtensionCacheStrategy.Instance); //»ñÈ¡ //»ñÈ¡µ±Ç°»º´æ²ßÂÔ£¨Ä¬ÈÏΪÄڴ滺´æ£© var objectCache = CacheStrategyFactory.GetObjectCacheStrategyInstance(); var testCacheStrategy = CacheStrategyDomainWarehouse .GetDomainExtensionCacheStrategy(objectCache, new TestCacheDomain()); Assert.IsInstanceOfType(testCacheStrategy, typeof(TestExtensionCacheStrategy)); var baseCache = testCacheStrategy.BaseCacheStrategy(); Assert.IsInstanceOfType(baseCache, objectCache.GetType()); //дÈë var testStr = Guid.NewGuid().ToString(); baseCache.Set("TestCache", testStr); //¶ÁÈ¡ var result = (testCacheStrategy as TestExtensionCacheStrategy).GetTestCache("TestCache"); Assert.AreEqual(testStr, result); }
public void ClearRegisteredDomainExtensionCacheStrategiesTest() { //添加领域缓存 CacheStrategyDomainWarehouse.RegisterCacheStrategyDomain(TestExtensionCacheStrategy.Instance); var objectCache = CacheStrategyFactory.GetObjectCacheStrategyInstance(); var testCacheStrategy = CacheStrategyDomainWarehouse .GetDomainExtensionCacheStrategy(objectCache, new TestCacheDomain()); Assert.IsInstanceOfType(testCacheStrategy, typeof(TestExtensionCacheStrategy)); //清除领域缓存 CacheStrategyDomainWarehouse.ClearRegisteredDomainExtensionCacheStrategies(); try { testCacheStrategy = CacheStrategyDomainWarehouse .GetDomainExtensionCacheStrategy(objectCache, new TestCacheDomain()); } catch (UnregisteredDomainCacheStrategyException ex) { Console.WriteLine("以下异常抛出才是正确的\r\n========\r\n"); Console.WriteLine(ex);//未注册 } catch (Exception ex) { Assert.Fail(ex.Message); } }
public void RegisterAndGetTest() { //还原默认缓存状态 CacheStrategyFactory.RegisterObjectCacheStrategy(() => LocalObjectCacheStrategy.Instance); //注册 CacheStrategyDomainWarehouse.RegisterCacheStrategyDomain(TestExtensionCacheStrategy.Instance); //获取 //获取当前缓存策略(默认为内存缓存) var objectCache = CacheStrategyFactory.GetObjectCacheStrategyInstance(); var testCacheStrategy = CacheStrategyDomainWarehouse .GetDomainExtensionCacheStrategy(objectCache, new TestCacheDomain()); Assert.IsInstanceOfType(testCacheStrategy, typeof(TestExtensionCacheStrategy)); var baseCache = testCacheStrategy.BaseCacheStrategy(); Assert.IsInstanceOfType(baseCache, objectCache.GetType()); //写入 var testStr = Guid.NewGuid().ToString(); baseCache.Set("TestCache", testStr); //读取 var result = (testCacheStrategy as TestExtensionCacheStrategy).GetTestCache("TestCache"); Assert.AreEqual(testStr, result); }
/// <summary> /// 向底层缓存注册当前缓存策略 /// </summary> /// <param name="extensionCacheStrategy"></param> public void RegisterCacheStrategyDomain(IDomainExtensionCacheStrategy extensionCacheStrategy) { CacheStrategyDomainWarehouse.RegisterCacheStrategyDomain(extensionCacheStrategy); }
public void RegisterCacheStrategyDomain(IDomainExtensionCacheStrategy extensionCacheStrategy) { CacheStrategyDomainWarehouse.RegisterCacheStrategyDomain(extensionCacheStrategy);//对于可以重用的方法,可以考虑做一个基类 }
///<summary> /// LocalCacheStrategy的构造函数 ///</summary> TestExtensionRedisCacheStrategy() { //向底层缓存注册当前缓存策略 CacheStrategyDomainWarehouse.RegisterCacheStrategyDomain(this); }