AutofacExtension.cs 1.1 KB

123456789101112131415161718192021222324252627282930
  1. using Autofac;
  2. using ERP.Framework.WebApi;
  3. using System.Reflection;
  4. namespace ERP.Framework.Extensions
  5. {
  6. /// <summary>
  7. /// Autofac扩展
  8. /// </summary>
  9. public static class AutofacExtension
  10. {
  11. /// <summary>
  12. /// 初始化Autofac,注入Repository 和 Service
  13. /// </summary>
  14. /// <param name="builder"></param>
  15. /// <param name="assemblyName">程序集</param>
  16. public static void InitAutofac(this ContainerBuilder builder)
  17. {
  18. var assemblyList = AppDomain.CurrentDomain.GetAssemblies()
  19. .Where(t => t.FullName != null && t.FullName.Contains("ERP"));
  20. //根据名称约定(业务处理层以Service结尾,仓储层以Repository结尾),实现服务接口和服务实现的依赖
  21. builder.RegisterAssemblyTypes(assemblyList.ToArray())
  22. .Where(t => t.IsClass)
  23. .Where(t => t.Name.EndsWith("Service") || t.Name.EndsWith("Repository"))
  24. .AsSelf().AsImplementedInterfaces()
  25. .InstancePerLifetimeScope();
  26. }
  27. }
  28. }