Autofac实例生命周期

本文详细介绍了依赖注入中四种不同的生命周期管理策略:默认每次请求创建新实例、PerLifetimeScope作用域内的单例、基于HTTP请求的单例及全局单例模式,并提供了具体的配置代码示例。

1.默认,每次请求都会返回一个实例

builder.RegisterType<X>().InstancePerDependency();
View Code

2.Per Lifetime Scope:这个作用域适用于嵌套的生命周期。一个使用Per Lifetime 作用域的component在一个 nested lifetime scope内最多有一个实例。

builder.RegisterType<X>().InstancePerLifetimeScope();

  

3.基于线程或者Context上下文的请求,返回一个单例实例,在Controller的一个View页面执行时包含了整个Context上下文处理,这种属于第二种情况的一个例子

   builder.RegisterType<OpenIdRelyingPartyService>().As<IOpenIdRelyingPartyService>().InstancePerHttpRequest();

4.单例模式:所有的请求只会返回一个单例

builder.RegisterType<X>().SingleInstance();

  Don’t resolve from the root container. Always resolve from and then release a lifetime scope.

 

转载于:https://www.cnblogs.com/xiaoweinet/p/3512255.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值