声明周期

  • InstancePerDependency 瞬时 (每次请求都是一个新的实例,默认的生命周期)
  • InstancePerLifetimeScope 范围(相同作用域下获取到的服务实例相同)
  • SingleInstance 单例(全局唯一实例)
  • InstancePerRequest (不同的请求获取的服务实例不一样)

    注入方式

名称 说明
AsImplementedInterfaces() 是以接口方式进行注入,注入这些类的所有的公共接口作为服务
PropertiesAutowired 属性注入

demo

  1. /// <summary>
  2. /// 重写Load函数
  3. /// </summary>
  4. /// <param name="builder"></param>
  5. protected override void Load(ContainerBuilder builder)
  6. {
  7. //注册Service
  8. var assemblysServices = Assembly.Load("Webapi.Core.Service");
  9. builder.RegisterAssemblyTypes(assemblysServices)
  10. .InstancePerDependency()//默认模式,每次调用,都会重新实例化对象;每次请求都创建一个新的对象
  11. .AsImplementedInterfaces()//是以接口方式进行注入,注入这些类的所有的公共接口作为服务(除了释放资源)
  12. .EnableInterfaceInterceptors(); //引用Autofac.Extras.DynamicProxy;应用拦截器
  13. //注册Repository
  14. var assemblysRepository = Assembly.Load("Webapi.Core.Repository");
  15. builder.RegisterAssemblyTypes(assemblysRepository)
  16. .InstancePerDependency()//默认模式,每次调用,都会重新实例化对象;每次请求都创建一个新的对象
  17. .AsImplementedInterfaces()//是以接口方式进行注入,注入这些类的所有的公共接口作为服务(除了释放资源)
  18. .EnableInterfaceInterceptors(); //引用Autofac.Extras.DynamicProxy;应用拦截器
  19. }