我以前問一個問題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