【问题标题】:lifetime of InstancePerDependency with constructor injection AutofacInstancePerDependency 的生命周期与构造函数注入 Autofac
【发布时间】:2016-07-21 09:27:53
【问题描述】:

我对依赖生命周期的概念很陌生。我已阅读有关different lifetime types 的文档。

对于 InstancePerDependency,默认一个。该页面讨论了在生命周期范围内解析,以便容器正确处理它。这个我能理解。

但是当 Autofac 自动通过构造函数注入依赖时呢? Web 请求完成后,容器是否仍然持有引用?

【问题讨论】:

    标签: c# autofac


    【解决方案1】:

    This documentation 帮助。

    请注意,使用 Autofac 集成库的标准工作单元 生命周期范围将自动为您创建和处置。 例如,在 Autofac 的 ASP.NET MVC 集成中,生命周期 将在 Web 请求开始时为您创建,所有 组件通常会从那里解决。在结束时 Web 请求,范围将自动释放 - 无需额外 您需要创建范围。如果您使用其中一种 集成库,你应该知道什么 您可以使用自动创建的范围。

    换句话说,如果 Autofac 正在创建您的控制器来处理 Web 请求(如果它正在注入依赖项,则必须如此),那么依赖项将使用为每个控制器创建的范围来解决,并在 Web 请求结束时处理。

    【讨论】:

    • 是的。这种持有要处理的引用的概念是您不应该直接从容器中解析的原因。
    • 那么在这种情况下,IntancePerDependency 实际上与 InstancePerRequest 相同吗?
    • 我是这么理解的。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-06
    • 1970-01-01
    • 2012-11-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多