IoC寿命差异
本文关键字:IoC | 更新日期: 2023-09-27 18:02:42
我是c#新手,刚开始在web api中学习IoC。Transient
和PerWebRequest
的生活方式有什么不同
对不起,我的英语不好。
- 单例
它的意思是"一个实例为所有"。每次调用Resolve
(甚至隐式)时,您都会得到相同的对象
- 瞬态
与singletone
相反。你会得到你调用Resolve
- PerWebRequest
阅读Singleton
如何处理一个请求和transient
如何处理另一个请求(您将获得与请求接收一样多的对象)
要了解更多信息,请参阅标题。温莎手册或官方asp.net文档
PerWebRequest作用域从会议开始一直持续到会议结束。只要您持有对已解析实体的引用,瞬态就存在。AddTransient方法用于将抽象类型映射到具体的服务,这些服务为每个需要它的对象单独实例化。
参考:Asp。网络依赖注入
瞬态意味着您拥有与称为Ioc容器的对象一样多的对象。这也意味着你必须处理掉所有你创建的一次性物品。
PerWebRequest意味着每个请求都有一个实例,所以如果你有多个请求在服务器上运行,每个请求都有自己的对象实例。可丢弃的对象可以由IoC框架来处理。