From 38bde3e8210c41e9d0d219daba0c075cd676efce Mon Sep 17 00:00:00 2001
From: Rodney Chen <rodney.chen@hotmail.com>
Date: 星期四, 24 十月 2024 10:20:54 +0800
Subject: [PATCH] 优化dll加载

---
 Tiger.Api/Controllers/Test/TestController.R.cs |   64 +++++++++++++++++++++++++++++++-
 1 files changed, 62 insertions(+), 2 deletions(-)

diff --git a/Tiger.Api/Controllers/Test/TestController.R.cs b/Tiger.Api/Controllers/Test/TestController.R.cs
index bb1017a..61c346a 100644
--- a/Tiger.Api/Controllers/Test/TestController.R.cs
+++ b/Tiger.Api/Controllers/Test/TestController.R.cs
@@ -23,6 +23,8 @@
 using Swifter.Tools;
 using Tiger.Model.Entitys.MES.Position;
 using Microsoft.CodeAnalysis.Options;
+using System.IO;
+using System.Runtime.Loader;
 
 namespace Tiger.Api.Controllers.Test
 {
@@ -306,8 +308,9 @@
     public partial class _TestController : ControllerBase
     {
         [HttpGet]
-        public async Task<IActionResult> DoSomething(int duration)
+        public async Task<IActionResult> DoSomething(int duration, string code)
         {
+            Barcode b = new("asdasd");
             var begin = DateTime.Now;
             while ((DateTime.Now - begin).TotalSeconds <= duration)
             {
@@ -317,7 +320,64 @@
                 ConsoleExt.WriteLine($"Working {begin:mmssfff} ... {(percent > 1 ? 1 : percent):P0} ...", ConsoleColor.Green);
             }
             Logger.Default.Info($"{begin:mmssfff} completed");
-            return Ok($"{begin:mmssfff} completed");
+            return Ok($"{begin:mmssfff} completed {b.DateCode}");
+        }
+
+        [HttpPost]
+        public async Task<IActionResult> MESSubmitAsync([FromBody] ApiAction<SubmitInput> action)
+        {
+            var data = action.Data.Data;
+
+            var act = Biz.Db.Queryable<MES_WO_ACTION>().First(q => q.ID == data);
+
+            
+            var result = act.OPTION_1?.ToString().JsonToObject<List<WipPkgItem>>();
+
+            return Ok(result?.ToJson());
+        }
+
+        [HttpGet]
+        public async Task<IActionResult> RefreashPlugin(string path)
+        {
+            var assemblies = AppDomain.CurrentDomain.GetAssemblies().Where(a => a.GetName().Name == "Tiger.Business.MES");
+            // 鏌ユ壘鎸囧畾鍚嶇О鐨勭▼搴忛泦
+            //var assembly = Array.Find(assemblies, a => a.GetName().Name == "Tiger.Business.MES");
+
+            //var ass = Assembly.LoadFrom(AppDomain.CurrentDomain.BaseDirectory + "\\Tiger.Business.MES1.dll");
+
+
+            var mes1 = new AssemblyLoadContext("mes1", true);
+            var assembly1 = mes1.LoadFromAssemblyPath(AppDomain.CurrentDomain.BaseDirectory + "\\Tiger.Business1.MES.dll");
+            mes1.Unloading += context => { Console.WriteLine($"褰撳墠鍗歌浇{context.Name}绋嬪簭闆嗭細" + string.Join(',', context.Assemblies.Select(x => x.FullName))); };
+            assemblies = AppDomain.CurrentDomain.GetAssemblies().Where(a => a.GetName().Name == "Tiger.Business.MES");
+
+            var mes2 = new AssemblyLoadContext("mes2", true);
+            var assembly2 = mes2.LoadFromAssemblyPath(AppDomain.CurrentDomain.BaseDirectory + "\\Tiger.Business2.MES.dll");
+            mes2.Unloading += context => { Console.WriteLine($"褰撳墠鍗歌浇{context.Name}绋嬪簭闆嗭細" + string.Join(',', context.Assemblies.Select(x => x.FullName))); };
+            assemblies = AppDomain.CurrentDomain.GetAssemblies().Where(a => a.GetName().Name == "Tiger.Business.MES");
+
+            mes1.Unload();
+            assemblies = AppDomain.CurrentDomain.GetAssemblies().Where(a => a.GetName().Name == "Tiger.Business.MES");
+            mes2.Unload();
+            assemblies = AppDomain.CurrentDomain.GetAssemblies().Where(a => a.GetName().Name == "Tiger.Business.MES");
+            
+            
+            
+            
+            
+            //var newBuilder = new ContainerBuilder();
+
+            ////AutoFac 閰嶇疆鏂囦欢娉ㄥ叆
+            //AutoFacContainer.Init(newBuilder);
+            //newBuilder.RegisterBuildCallback(scope =>
+            //{
+
+            //    AutoFacContainer.Instance = (IContainer)scope;
+            //});
+            //var newContainer = newBuilder.Build();
+            //var trans = AutoFacContainer.Instance.Resolve<ITestNode>().Init("action.ID", "Request.Host.Value", "action.Data?.USER_CODE", "OQC001");
+            //var d = trans.GetDefects();
+            return Ok($"");
         }
     }
 

--
Gitblit v1.9.3