在查看http://code.google.com/p/autofac/wiki/AspNetIntegration时,我对使用ContainerScoped()
注册的对象的生命周期感到困惑。
页面说明:
ContainerDisposalModule允许Autofac在请求完成后立即处理在请求处理期间创建的任何组件。
在我看来,在单个HttpRequest期间ContainerScoped()
注册将为每个解析返回相同的实例 - 并且不会在HttpRequests之间共享给定的对象实例。
但是,如果是这种情况,我没有看到HttpRequestScoped()
方法的目的,这让我相信我错过了一些东西。
在ASP.NET中使用ContainerScoped()
时,Autofac.Integration.Web.ContainerDisposalModule
注册的对象生存期是多少?
答案 0 :(得分:4)
您使用的是旧版Autofac吗?在我的脑海中,方法“ContainerScoped()”在更高版本中被称为“InstancePerLifetimeScope”,我认为(不确定)“HttpRequestScoped”函数已被弃用。无论如何,这两个方法是等价的,因为每个请求都会创建一个生命周期范围(子容器)。