IoC寿命差异

时间:2016-08-17 13:40:41

标签: c# inversion-of-control ioc-container

我是C#的新手,刚刚开始在web api中学习IoC。 TransientPerWebRequest生活方式有什么区别

抱歉英语不好。

3 个答案:

答案 0 :(得分:1)

  • 的Singleton

它的意思是"所有"的一个实例。所有当你打电话给singletone时(甚至隐含地)你都有相同的对象

  • <强>瞬态

它与Resolve相反。您可以在拨打Singleton

时获得尽可能多的对象
  • PerWebRequest

了解一个请求的transient和其他请求的set_output => _display $time = date('r'); $output="data: The server time is: {$time}\n\n"; $this->output->set_content_type('text/event-stream')->_display($output); $this->output->set_header('Cache-Control: no-cache'); flush(); (您将获得与请求一样多的对象)

有关详情,请参阅catle.windsor manualofficial asp.net docs

答案 1 :(得分:1)

PerWebRequest范围从网络摄像头的开始到网络摄像头的结束。只要您拥有对已解析实体的引用,就会过度生存。 AddTransient方法用于将抽象类型映射到为每个需要它的对象单独实例化的具体服务。

参考:Asp.Net Dependency Injection

答案 2 :(得分:0)

瞬态意味着您拥有与调用Ioc容器一样多的对象。这也意味着你必须处理你创建的所有IDisposable项目。

PerWebRequest意味着每个请求都有1个实例,因此如果您在服务器上运行多个请求,则每个请求都有自己的对象实例。 IDC可以由IoC框架处理。