From 70233af5426b0d1c343ebe87183303a34a9aaa58 Mon Sep 17 00:00:00 2001 From: hutongqing <hutongqing@hnkhzn.com> Date: 星期三, 20 十一月 2024 09:05:38 +0800 Subject: [PATCH] WIDESEAWCS_QuartzJob更新版本 --- WIDESEAWCS_Server/WIDESEAWCS_Core/AOP/CacheAOP.cs | 22 ++++++++++++++++++++++ 1 files changed, 22 insertions(+), 0 deletions(-) diff --git a/WIDESEAWCS_Server/WIDESEAWCS_Core/AOP/CacheAOP.cs b/WIDESEAWCS_Server/WIDESEAWCS_Core/AOP/CacheAOP.cs index cd8c28e..a0f8edb 100644 --- a/WIDESEAWCS_Server/WIDESEAWCS_Core/AOP/CacheAOP.cs +++ b/WIDESEAWCS_Server/WIDESEAWCS_Core/AOP/CacheAOP.cs @@ -89,16 +89,21 @@ protected string CustomCacheKey(IInvocation invocation) { var typeName = invocation.TargetType.Name; + //鑾峰彇璋冪敤鐩爣绫诲瀷鍚嶇О var methodName = invocation.Method.Name; + //鑾峰彇璋冪敤鏂规硶鍚嶇О var methodArguments = invocation.Arguments.Select(GetArgumentValue).Take(3).ToList();//鑾峰彇鍙傛暟鍒楄〃锛屾渶澶氫笁涓� string key = $"{typeName}:{methodName}:"; + //瀹氫箟key锛屾牸寮忎负锛氱被鍨嬪悕绉�:鏂规硶鍚嶇О: foreach (var param in methodArguments) { key = $"{key}{param}:"; + //閬嶅巻鍙傛暟鍒楄〃锛屽皢鍙傛暟鍊兼坊鍔犲埌key涓紝鏍煎紡涓猴細鍙傛暟鍊�: } return key.TrimEnd(':'); + //杩斿洖key锛屽幓鎺夋湯灏剧殑鍐掑彿 } /// <summary> @@ -109,41 +114,58 @@ protected static string GetArgumentValue(object arg) { if (arg is DateTime) + // 濡傛灉arg鏄疍ateTime绫诲瀷锛屽垯杩斿洖鍏跺瓧绗︿覆琛ㄧず褰㈠紡 return ((DateTime)arg).ToString("yyyyMMddHHmmss"); if (!arg.IsNotEmptyOrNull()) + // 濡傛灉arg涓嶆槸绌烘垨null锛屽垯杩斿洖鍏跺瓧绗︿覆琛ㄧず褰㈠紡 return arg.ObjToString(); if (arg != null) { + // 濡傛灉arg涓嶆槸绌烘垨null if (arg is Expression) { + // 濡傛灉arg鏄疎xpression绫诲瀷 var obj = arg as Expression; + // 瑙f瀽arg var result = Resolve(obj); + // 杩斿洖MD5鍔犲瘑鍚庣殑瀛楃涓� return MD5Helper.MD5Encrypt16(result); } else if (arg.GetType().IsClass) { + // 濡傛灉arg鏄被绫诲瀷 + // 灏哸rg搴忓垪鍖栦负JSON瀛楃涓� return MD5Helper.MD5Encrypt16(JsonConvert.SerializeObject(arg)); } + // 鍚﹀垯锛岃繑鍥�"value:"鍔犱笂arg鐨勫瓧绗︿覆琛ㄧず褰㈠紡 return $"value:{arg.ObjToString()}"; } + // 濡傛灉arg鏄┖鎴杗ull锛屽垯杩斿洖绌哄瓧绗︿覆 return string.Empty; } private static string Resolve(Expression expression) { + // 鍒涘缓涓�涓狤xpressionContext瀵硅薄 ExpressionContext expContext = new ExpressionContext(); + // 瑙f瀽琛ㄨ揪寮忥紝骞舵寚瀹氳В鏋愮被鍨嬩负WhereSingle expContext.Resolve(expression, ResolveExpressType.WhereSingle); + // 鑾峰彇瑙f瀽缁撴灉 var value = expContext.Result.GetString(); + // 鑾峰彇鍙傛暟鍒楄〃 var pars = expContext.Parameters; + // 閬嶅巻鍙傛暟鍒楄〃 pars.ForEach(s => { + // 灏嗗弬鏁板悕鏇挎崲涓哄弬鏁板�� value = value.Replace(s.ParameterName, s.Value.ObjToString()); }); + // 杩斿洖鏇挎崲鍚庣殑鍊� return value; } } -- Gitblit v1.9.3