【发布时间】:2016-07-21 09:27:53
【问题描述】:
我对依赖生命周期的概念很陌生。我已阅读有关different lifetime types 的文档。
对于 InstancePerDependency,默认一个。该页面讨论了在生命周期范围内解析,以便容器正确处理它。这个我能理解。
但是当 Autofac 自动通过构造函数注入依赖时呢? Web 请求完成后,容器是否仍然持有引用?
【问题讨论】:
我对依赖生命周期的概念很陌生。我已阅读有关different lifetime types 的文档。
对于 InstancePerDependency,默认一个。该页面讨论了在生命周期范围内解析,以便容器正确处理它。这个我能理解。
但是当 Autofac 自动通过构造函数注入依赖时呢? Web 请求完成后,容器是否仍然持有引用?
【问题讨论】:
请注意,使用 Autofac 集成库的标准工作单元 生命周期范围将自动为您创建和处置。 例如,在 Autofac 的 ASP.NET MVC 集成中,生命周期 将在 Web 请求开始时为您创建,所有 组件通常会从那里解决。在结束时 Web 请求,范围将自动释放 - 无需额外 您需要创建范围。如果您使用其中一种 集成库,你应该知道什么 您可以使用自动创建的范围。
换句话说,如果 Autofac 正在创建您的控制器来处理 Web 请求(如果它正在注入依赖项,则必须如此),那么依赖项将使用为每个控制器创建的范围来解决,并在 Web 请求结束时处理。
【讨论】: