Преглед изворни кода

[Serslot]修复BackgroundTask模式下extApi不转发请求的bug

lith пре 4 година
родитељ
комит
25f12116fc

+ 5 - 2
dotnet/Library/Sers/Sers.Serslot/Sers.Serslot/Extensions/ILocalApiService_LoadSerslotExtApi_Extensions.cs

@@ -14,8 +14,11 @@ namespace Vit.Extensions
         /// load api from appsettings.json::serslot.extApi
         /// </summary>
         /// <param name="data"></param>
-        internal static void LoadSerslotExtApi(this ILocalApiService data)
+        /// <param name="CreateApiNode"></param>
+        internal static void LoadSerslotExtApi(this ILocalApiService data, Func<SsApiDesc, IApiNode> CreateApiNode = null)
         {
+            if (CreateApiNode == null) CreateApiNode = apiDesc => new ApiNode_Original(apiDesc: apiDesc);
+
             Vit.Core.Util.ConfigurationManager.ConfigurationManager.Instance.GetByPath<List<SsApiDesc>>("serslot.extApi")?.ForEach(apiDesc =>
             {
                 IApiNode apiNode;
@@ -25,7 +28,7 @@ namespace Vit.Extensions
                 if (reply == null)
                 {
                     //(x.x.1)由host处理
-                    apiNode = new ApiNode_Original(apiDesc: apiDesc);
+                    apiNode = CreateApiNode(apiDesc);
                 }
                 else
                 {

+ 1 - 1
dotnet/Library/Sers/Sers.Serslot/Sers.Serslot/Mode/BackgroundTask/SerslotServer.LoadSerslotApi.cs

@@ -38,7 +38,7 @@ namespace Sers.Serslot.Mode.BackgroundTask
 
 
             //(x.2)load api from appsettings.json::serslot.extApi
-            data.LoadSerslotExtApi();
+            data.LoadSerslotExtApi(apiDesc=> new LocalApiNode(apiDesc, this));
 
         }
     }