我以前问一个问题here有关HTTP请求结束时autofac不处置我的对象。我现在认为我有一个更大的问题,becuasse有证据表明它正在提供SAME对象请求请求。再次,我正在使用他们的说明here。我的测试有点复杂,因为我使用委托语法来创建一个对象,但我想我将它标记为请求生命期。的Global.asax.cs:autofac中,ASP.NET集成和HttpRequestScoped
protected void Application_Start(object sender, EventArgs e)
{
...
var builder = new Autofac.Builder.ContainerBuilder();
builder.Register<IDBConnectionSelector>(
(c) => new CachingDBConnections(ConstructorArgs...))
.HttpRequestScoped();
var container = builder.Build();
_containerProvider = new ContainerProvider(container);
}
public IContainerProvider ContainerProvider
{
get { return _containerProvider; }
}
static IContainerProvider _containerProvider;
我在这里的目的是要注册IDBConnectionSelector得到一个自定义构造函数,但与HTTP请求范围内创建的具体类型CachingDBConnections。
CachingDBConnections对象的某些方法在后续请求中失败,导致我相信我得到的是我上次得到的同一个请求,而不是每个请求的新请求。
这有道理吗?我究竟做错了什么?
,如果它的确与众不同,但我想这个注册您的服务不知道:builder.Register( C =>新CachingDBConnections(ConstructorArgs ...)) 。至于()HttpRequestScoped(); –
2009-09-03 16:34:49
该语法更有意义,但结果相同。更多挖掘我猜 - 感谢信息! – n8wrl 2009-09-03 16:54:00