From f43b7df8400f4fcffc9f19dca0888d61e2b33d5f Mon Sep 17 00:00:00 2001 From: dengjunjie <dengjunjie@hnkhzn.com> Date: 星期三, 12 三月 2025 18:41:52 +0800 Subject: [PATCH] WMS系统添加PDA权限,PDA程序 --- 项目代码/WMS/WIDESEA_WMSServer/WIDESEA_Core/Extensions/AutofacModuleRegister.cs | 79 +++++++++++++++++++++++++++++++++++++++ 1 files changed, 79 insertions(+), 0 deletions(-) diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_Core/Extensions/AutofacModuleRegister.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_Core/Extensions/AutofacModuleRegister.cs" new file mode 100644 index 0000000..c0eda16 --- /dev/null +++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_Core/Extensions/AutofacModuleRegister.cs" @@ -0,0 +1,79 @@ +锘縰sing Autofac; +using Autofac.Extras.DynamicProxy; +using Microsoft.Extensions.DependencyModel; +using OfficeOpenXml.FormulaParsing.Excel.Functions.Text; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Reflection; +using System.Runtime.Loader; +using System.Text; +using System.Threading.Tasks; +using WIDESEA_Core.AOP; +using WIDESEA_Core.BaseRepository; +using WIDESEA_Core.BaseServices; +using WIDESEA_Core.Helper; +using WIDESEA_Core.LogHelper; + +namespace WIDESEA_Core.Extensions +{ + public class AutofacModuleRegister : Autofac.Module + { + //private static readonly ILog log = LogManager.GetLogger(typeof(AutofacModuleRegister)); + protected override void Load(ContainerBuilder builder) + { + var basePath = AppContext.BaseDirectory; + var cacheType = new List<Type>(); + + builder.RegisterType<LogAOP>(); + if (AppSettings.app("LogAopEnable").ObjToBool()) + { + cacheType.Add(typeof(LogAOP)); + } + + builder.RegisterGeneric(typeof(RepositoryBase<>)).As(typeof(IRepository<>)).InstancePerDependency();//娉ㄥ唽浠撳偍 + builder.RegisterGeneric(typeof(ServiceBase<,>)).As(typeof(IService<>)).InstancePerDependency();//娉ㄥ唽鏈嶅姟 + + Type baseType = typeof(IDependency); + + List<RuntimeLibrary> compilationLibrary = DependencyContext.Default + .RuntimeLibraries + .Where(x => !x.Serviceable + && x.Type == "project") + .ToList(); + List<Assembly> assemblyList = new List<Assembly>(); + foreach (var library in compilationLibrary) + { + try + { + string path = Path.Combine(basePath, $"{library.Name}.dll"); + if (!File.Exists(path)) + { + var msg = $"{library.Name}.dll涓㈠け锛屽洜涓洪」鐩В鑰︿簡锛屾墍浠ラ渶瑕佸厛F6缂栬瘧锛屽啀F5杩愯锛岃妫�鏌� bin 鏂囦欢澶癸紝骞舵嫹璐濄��"; + //log.Error(msg); + throw new Exception(msg); + } + assemblyList.Add(Assembly.LoadFrom(path)); + } + catch (Exception ex) + { + Console.WriteLine(library.Name + ex.Message); + } + } + + builder.RegisterAssemblyTypes(assemblyList.ToArray()).Where(x => !x.IsInterface && !x.IsAbstract && baseType.IsAssignableFrom(x)) + .AsImplementedInterfaces() + .PropertiesAutowired() + .InstancePerDependency(). + EnableInterfaceInterceptors() + .InterceptedBy(cacheType.ToArray()); + + builder.RegisterType<UnitOfWorkManage>().As<IUnitOfWorkManage>() + .AsImplementedInterfaces() + .InstancePerLifetimeScope() + .PropertiesAutowired(); + + builder.RegisterType<RequestLogModel>().InstancePerLifetimeScope(); + } + } +} -- Gitblit v1.9.3