From 1c3e5bc50d3045d51cb9a9f747d53442b82d9e2c Mon Sep 17 00:00:00 2001
From: duheng <2784771470@qq.com>
Date: 星期五, 27 十二月 2024 17:50:22 +0800
Subject: [PATCH] 资产修改

---
 BLL/PBS.BLL.WE.Core/04-bll/00-core/CALCreateHelper.cs |   34 +++++++++++++++++++++++++++++++---
 1 files changed, 31 insertions(+), 3 deletions(-)

diff --git a/BLL/PBS.BLL.WE.Core/04-bll/00-core/CALCreateHelper.cs b/BLL/PBS.BLL.WE.Core/04-bll/00-core/CALCreateHelper.cs
index feefe62..275c719 100644
--- a/BLL/PBS.BLL.WE.Core/04-bll/00-core/CALCreateHelper.cs
+++ b/BLL/PBS.BLL.WE.Core/04-bll/00-core/CALCreateHelper.cs
@@ -1,4 +1,7 @@
-锘縩amespace PBS.BLL.WE
+锘縰sing System.Reflection;
+using Yw;
+
+namespace PBS.BLL.WE
 {
     /// <summary>
     /// CAL杈呭姪绫�
@@ -13,10 +16,35 @@
         public static T CreateCAL<T>()
         {
             var type = Settings.WEParasHelper.WE.CAL.CALType;
-            return Yw.CALFactory.CreateCAL<T>(type);
+            return CreateCAL<T>(type);
         }
 
+        public static I CreateCAL<I>(string SourceType = "HttpClient", bool EnableCache = true, int CacheTime = 10)
+        {
+            Type typeFromHandle = typeof(I);
+            string @namespace = typeFromHandle.Namespace;
+            string name = typeFromHandle.Name;
+            string name2 = typeFromHandle.Assembly.GetName().Name;
+            string key = $"Yw.CALFactory-{SourceType}-{name2}-{@namespace}-{name}";
+            I val = MemoryCacheHelper.Get<I>(key);
+            if (val != null)
+            {
+                return val;
+            }
 
+            string typeName = $"{@namespace}.{SourceType}.{name.Remove(0, 1)}";
+            val = (I)Assembly.Load(name2).CreateInstance(typeName);
+            if (val == null)
+            {
+                return val;
+            }
 
+            if (EnableCache)
+            {
+                MemoryCacheHelper.Set(key, val, CacheTime);
+            }
+
+            return val;
+        }
     }
-}
+}
\ No newline at end of file

--
Gitblit v1.9.3