From 0c0309afae85b72746bd2431c10c7f5982e210e3 Mon Sep 17 00:00:00 2001 From: Ben Lin <maobin001@msn.com> Date: 星期三, 30 四月 2025 17:46:44 +0800 Subject: [PATCH] 一些更改 --- Tiger.Api/Autofac/AutoFacContianer.cs | 30 +++++++++++++++++++++++------- 1 files changed, 23 insertions(+), 7 deletions(-) diff --git a/Tiger.Api/Autofac/AutoFacContianer.cs b/Tiger.Api/Autofac/AutoFacContianer.cs index db6b664..cdd8036 100644 --- a/Tiger.Api/Autofac/AutoFacContianer.cs +++ b/Tiger.Api/Autofac/AutoFacContianer.cs @@ -22,6 +22,7 @@ /// 瀹瑰櫒 /// </summary> public static IContainer Instance; + public static AppDomain AppDomain; /// <summary> /// 鍒濆鍖栧鍣� @@ -46,14 +47,24 @@ #region 鍔ㄦ�佸姞杞藉涓猟ll string[] assemblyPattern = new[] { "Tiger.Business([.].*)*.dll" }; - // 1. Scan for assemblies containing autofac modules in the bin folder - List<Assembly> assemblies = new List<Assembly>(); - assemblies.AddRange( - Directory.EnumerateFiles(AppDomain.CurrentDomain.BaseDirectory, "*.dll", SearchOption.AllDirectories) - .Where(filename => assemblyPattern.Any(pattern => Regex.IsMatch(filename, pattern))) - .Select(Assembly.LoadFrom) - ); + //AppDomain = AppDomain.CreateDomain("AutoFac Dll"); + //List<Assembly> assemblies = new List<Assembly>(); + //foreach (var file in Directory.EnumerateFiles(AppDomain.CurrentDomain.BaseDirectory, "*.dll", SearchOption.AllDirectories).Where(filename => assemblyPattern.Any(pattern => Regex.IsMatch(filename, pattern)))) + //{ + // var assembly = AppDomain.Load(Assembly.LoadFrom(file).GetName()); + // assemblies.Add(assembly); + //} + // 1. Scan for assemblies containing autofac modules in the bin folder + //List<Assembly> assemblies = new List<Assembly>(); + //assemblies.AddRange( + // Directory.EnumerateFiles(AppDomain.CurrentDomain.BaseDirectory, "*.dll", SearchOption.AllDirectories) + // .Where(filename => assemblyPattern.Any(pattern => Regex.IsMatch(filename, pattern))) + // .Select(Assembly.LoadFrom) + //); + + + var assemblies = PluginManager.Load(AppDomain.CurrentDomain.BaseDirectory, "Tiger.Business([.].*)*.dll"); foreach (var assembly in assemblies) { builder.RegisterAssemblyTypes(assembly).AsImplementedInterfaces(); @@ -96,5 +107,10 @@ { return AutoFacContainer.Instance.Resolve<T>(); } + + public static dynamic Resolve(string typeFullName) + { + return AutoFacContainer.Instance.Resolve(System.Type.GetType(typeFullName, true)); + } } } -- Gitblit v1.9.3