AutofacModuleRegister.cs 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738
  1. using Autofac;
  2. using Autofac.Extras.Quartz;
  3. using System.Reflection;
  4. using wms.api.Job;
  5. namespace wms.api.autofac
  6. {
  7. public class AutofacModuleRegister : Autofac.Module
  8. {
  9. //重写Autofac管道Load方法,在这里注册注入
  10. protected override void Load(ContainerBuilder builder)
  11. {
  12. builder.RegisterAssemblyTypes(GetAssemblyByName("wms.service")).Where(a => a.Name.EndsWith("Service")).AsImplementedInterfaces().PropertiesAutowired();
  13. builder.RegisterAssemblyTypes(GetAssemblyByName("wms.dataservice")).Where(a => a.Name.EndsWith("DataService")).AsImplementedInterfaces().PropertiesAutowired();
  14. //builder.RegisterModule(new QuartzAutofacFactoryModule());
  15. builder.RegisterModule(new QuartzAutofacJobsModule(typeof(PostJob).Assembly));
  16. ////单一注册
  17. //builder.RegisterType<NlogUtil>().Named<ILogUtil>(typeof(NlogUtil).Name);
  18. //var controllersTypesInAssembly = typeof(Startup).Assembly.GetExportedTypes()
  19. //.Where(type => typeof(Microsoft.AspNetCore.Mvc.ControllerBase).IsAssignableFrom(type)).ToArray();
  20. //builder.RegisterTypes(controllersTypesInAssembly).PropertiesAutowired();
  21. }
  22. /// <summary>
  23.   /// 根据程序集名称获取程序集
  24.   /// </summary>
  25.   /// <param name="AssemblyName">程序集名称</param>
  26. public static Assembly GetAssemblyByName(String AssemblyName)
  27. {
  28. return Assembly.Load(AssemblyName);
  29. }
  30. }
  31. }