Exemple #1
0
        public HomeController(ITestService testService, TestSingleClass testSingleClass, IAopCacheProvider aopCacheProvider)
        {
            TestService = testService;

            TestSingleClass = testSingleClass;

            AopCacheProvider = aopCacheProvider;
        }
Exemple #2
0
        public async Task <IActionResult> Privacy()
        {
            //第一次获取值 生成的key是  aaa
            var v1 = TestService.GetByKey();

            //生成的key是 bbb_1,占位符被替换:bbb_{userId} => bbb_1
            var v2 = TestService.GetByKeyAndParamter(1);

            //生成的key是 ccc_1000_1,占位符被替换:ccc_{req:Id}_{type} => ccc_1000_1
            var v3 = await TestService.GetUserInfo(1, new Req()
            {
                Id = 1000
            });


            //直接在类的方法上加标记,但是方法必须加 virtual
            //生成的key是  TestSingleClassKey
            var v4 = TestSingleClass.Get();


            //第二次获取值
            var v1New = TestService.GetByKey();

            var v2New = TestService.GetByKeyAndParamter(1);

            var v3New = await TestService.GetUserInfo(1, new Req()
            {
                Id = 1000
            });

            var v4New = TestSingleClass.Get();


            var sb = new StringBuilder();

            sb.AppendLine($"GetByKey(永不过期):第一次=> {v1}");
            sb.AppendLine($"GetByKey(永不过期):第二次=> {v1New}");

            sb.AppendLine($"GetByKeyAndParamter(3秒):第一次=> {v2}");
            sb.AppendLine($"GetByKeyAndParamter(3秒):第二次=> {v2New}");

            sb.AppendLine($"GetUserInfo(十分钟):第一次=> {Newtonsoft.Json.JsonConvert.SerializeObject(v3)}");
            sb.AppendLine($"GetUserInfo(十分钟):第二次=> {Newtonsoft.Json.JsonConvert.SerializeObject(v3New)}");

            sb.AppendLine($"TestSingleClass.Get(永不过期):第一次=> {v4}");
            sb.AppendLine($"TestSingleClass.Get(永不过期):第二次=> {v4New}");

            return(Content(sb.ToString()));
        }