2011-10-10 26 views
2

在MVC3應用程序中我有我的自定義實現IPrincipal。如何在web.config中爲每個http請求註冊Autofac組件?

我想在web.config中註冊它,然後通過Autofac注入到構造函數中。

Autofac XML配置具有屬性「實例範圍」,但不支持「per-http-request」。

任何想法如何在web.config中註冊每http範圍的組件?

我已經嘗試過每個依賴項,單個實例或每個生命週期的所有權與外部所有權的不同組合,但結果非常麻煩。

回答

3

由於Autofac團隊的Nicholas Blumhardt告訴我應該使用每壽命範圍

在ASP.NET下運行時,它實際上相當於每個HTTP請求。

+0

花了我很長時間才發現此回覆。很高興知道。 – Echiban

1

據我可以看到從源代碼中,不支持在XML配置中註冊每個http請求。如您所述,只允許使用三個instance-scope值(每個依賴項,單個實例和每個生命週期範圍)。

此外,看看如何per-http-request範圍界定的工作原理,它使用InstancePerMatchingLifetimeScope註冊電話和httpRequest鍵。同樣,沒有配置「匹配生命週期範圍」的XML配置方式。

要走的路是通過代碼進行配置。