在AutoFac中,与ASP.NET集成一起使用时,ContainerScoped()的对象生存期是多少?

时间:2011-01-14 23:34:46

标签: autofac

在查看http://code.google.com/p/autofac/wiki/AspNetIntegration时,我对使用ContainerScoped()注册的对象的生命周期感到困惑。

页面说明:

  

ContainerDisposalModule允许Autofac在请求完成后立即处理在请求处理期间创建的任何组件。

在我看来,在单个HttpRequest期间ContainerScoped()注册将为每个解析返回相同的实例 - 并且不会在HttpRequests之间共享给定的对象实例。

但是,如果是这种情况,我没有看到HttpRequestScoped()方法的目的,这让我相信我错过了一些东西。

在ASP.NET中使用ContainerScoped()时,Autofac.Integration.Web.ContainerDisposalModule注册的对象生存期是多少?

1 个答案:

答案 0 :(得分:4)

您使用的是旧版Autofac吗?在我的脑海中,方法“ContainerScoped()”在更高版本中被称为“InstancePerLifetimeScope”,我认为(不确定)“HttpRequestScoped”函数已被弃用。无论如何,这两个方法是等价的,因为每个请求都会创建一个生命周期范围(子容器)。