using Autofac; using Autofac.Extras.Quartz; using System.Reflection; using wms.api.Job; namespace wms.api.autofac { public class AutofacModuleRegister : Autofac.Module { //重写Autofac管道Load方法,在这里注册注入 protected override void Load(ContainerBuilder builder) { builder.RegisterAssemblyTypes(GetAssemblyByName("wms.service")).Where(a => a.Name.EndsWith("Service")).AsImplementedInterfaces().PropertiesAutowired(); builder.RegisterAssemblyTypes(GetAssemblyByName("wms.dataservice")).Where(a => a.Name.EndsWith("DataService")).AsImplementedInterfaces().PropertiesAutowired(); //builder.RegisterModule(new QuartzAutofacFactoryModule()); builder.RegisterModule(new QuartzAutofacJobsModule(typeof(PostJob).Assembly)); ////单一注册 //builder.RegisterType().Named(typeof(NlogUtil).Name); //var controllersTypesInAssembly = typeof(Startup).Assembly.GetExportedTypes() //.Where(type => typeof(Microsoft.AspNetCore.Mvc.ControllerBase).IsAssignableFrom(type)).ToArray(); //builder.RegisterTypes(controllersTypesInAssembly).PropertiesAutowired(); } ///   /// 根据程序集名称获取程序集   ///   /// 程序集名称 public static Assembly GetAssemblyByName(String AssemblyName) { return Assembly.Load(AssemblyName); } } }