|  | @@ -1,6 +1,5 @@
 | 
	
		
			
				|  |  |  using Admin.Core.Aop;
 | 
	
		
			
				|  |  |  using Admin.Core.Auth;
 | 
	
		
			
				|  |  | -using Admin.Core.Common.Attributes;
 | 
	
		
			
				|  |  |  using Admin.Core.Common.Auth;
 | 
	
		
			
				|  |  |  using Admin.Core.Common.Cache;
 | 
	
		
			
				|  |  |  using Admin.Core.Common.Configs;
 | 
	
	
		
			
				|  | @@ -14,6 +13,7 @@ using Admin.Core.Enums;
 | 
	
		
			
				|  |  |  using Admin.Core.Extensions;
 | 
	
		
			
				|  |  |  using Admin.Core.Filters;
 | 
	
		
			
				|  |  |  using Admin.Core.Logs;
 | 
	
		
			
				|  |  | +using Admin.Core.RegisterModules;
 | 
	
		
			
				|  |  |  using Admin.Core.Repository;
 | 
	
		
			
				|  |  |  using AspNetCoreRateLimit;
 | 
	
		
			
				|  |  |  using Autofac;
 | 
	
	
		
			
				|  | @@ -65,6 +65,7 @@ namespace Admin.Core
 | 
	
		
			
				|  |  |              //雪花漂移算法
 | 
	
		
			
				|  |  |              YitIdHelper.SetIdGenerator(new IdGeneratorOptions(1) { WorkerIdBitLength = 6 });
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +            //权限处理
 | 
	
		
			
				|  |  |              services.AddScoped<IPermissionHandler, PermissionHandler>();
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |              // ClaimType不被更改
 | 
	
	
		
			
				|  | @@ -383,60 +384,14 @@ namespace Admin.Core
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |              try
 | 
	
		
			
				|  |  |              {
 | 
	
		
			
				|  |  | -                #region SingleInstance
 | 
	
		
			
				|  |  | +                // 单例注入
 | 
	
		
			
				|  |  | +                builder.RegisterModule(new SingleInstanceModule());
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -                //无接口注入单例
 | 
	
		
			
				|  |  | -                var assemblyCore = Assembly.Load("Admin.Core");
 | 
	
		
			
				|  |  | -                var assemblyCommon = Assembly.Load("Admin.Core.Common");
 | 
	
		
			
				|  |  | -                var assemblyTools = Assembly.Load("Admin.Tools");
 | 
	
		
			
				|  |  | -                builder.RegisterAssemblyTypes(assemblyCore, assemblyCommon, assemblyTools)
 | 
	
		
			
				|  |  | -                .Where(t => t.GetCustomAttribute<SingleInstanceAttribute>() != null)
 | 
	
		
			
				|  |  | -                .SingleInstance();
 | 
	
		
			
				|  |  | +                // 仓储注入
 | 
	
		
			
				|  |  | +                builder.RegisterModule(new RepositoryModule());
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -                //有接口注入单例
 | 
	
		
			
				|  |  | -                builder.RegisterAssemblyTypes(assemblyCore, assemblyCommon, assemblyTools)
 | 
	
		
			
				|  |  | -                .Where(t => t.GetCustomAttribute<SingleInstanceAttribute>() != null)
 | 
	
		
			
				|  |  | -                .AsImplementedInterfaces()
 | 
	
		
			
				|  |  | -                .SingleInstance();
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -                #endregion SingleInstance
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -                #region Aop
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -                var interceptorServiceTypes = new List<Type>();
 | 
	
		
			
				|  |  | -                if (_appConfig.Aop.Transaction)
 | 
	
		
			
				|  |  | -                {
 | 
	
		
			
				|  |  | -                    builder.RegisterType<TransactionInterceptor>();
 | 
	
		
			
				|  |  | -                    builder.RegisterType<TransactionAsyncInterceptor>();
 | 
	
		
			
				|  |  | -                    interceptorServiceTypes.Add(typeof(TransactionInterceptor));
 | 
	
		
			
				|  |  | -                }
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -                #endregion Aop
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -                #region Repository
 | 
	
		
			
				|  |  | -                var assemblyRepository = Assembly.Load("Admin.Core.Repository");
 | 
	
		
			
				|  |  | -                builder.RegisterAssemblyTypes(assemblyRepository)
 | 
	
		
			
				|  |  | -                .AsImplementedInterfaces()
 | 
	
		
			
				|  |  | -                .InstancePerLifetimeScope()
 | 
	
		
			
				|  |  | -                .PropertiesAutowired();// 属性注入
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -                //泛型注入
 | 
	
		
			
				|  |  | -                builder.RegisterGeneric(typeof(RepositoryBase<>)).As(typeof(IRepositoryBase<>)).InstancePerLifetimeScope();
 | 
	
		
			
				|  |  | -                builder.RegisterGeneric(typeof(RepositoryBase<,>)).As(typeof(IRepositoryBase<,>)).InstancePerLifetimeScope();
 | 
	
		
			
				|  |  | -                #endregion Repository
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -                #region Service
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -                var assemblyServices = Assembly.Load("Admin.Core.Service");
 | 
	
		
			
				|  |  | -                builder.RegisterAssemblyTypes(assemblyServices)
 | 
	
		
			
				|  |  | -                .AsImplementedInterfaces()
 | 
	
		
			
				|  |  | -                .InstancePerLifetimeScope()
 | 
	
		
			
				|  |  | -                .PropertiesAutowired()// 属性注入
 | 
	
		
			
				|  |  | -                .InterceptedBy(interceptorServiceTypes.ToArray())
 | 
	
		
			
				|  |  | -                .EnableInterfaceInterceptors();
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -                #endregion Service
 | 
	
		
			
				|  |  | +                // 服务注入
 | 
	
		
			
				|  |  | +                builder.RegisterModule(new ServiceModule(_appConfig));
 | 
	
		
			
				|  |  |              }
 | 
	
		
			
				|  |  |              catch (Exception ex)
 | 
	
		
			
				|  |  |              {
 |