如何在web.config中为每个http请求注册Autofac组件?

时间:2011-10-10 16:03:32

标签: web-config autofac

在MVC3应用程序中,我有自定义的IPrincipal实现。

我想在web.config中注册它,然后通过Autofac将它注入构造函数。

Autofac XML-configuration具有属性“instance-scope”,但它不支持“per-http-request”。

任何想法如何在web.config中注册每个http范围的组件?

我已经尝试了每个依赖项,单实例或每个生命周期范围的不同组合以及所有权外部,但结果非常错误。

2 个答案:

答案 0 :(得分:3)

来自Autofac团队的Nicholas Blumhardt告诉我应该使用每个生命周期范围

在ASP.NET下运行时,实际上相当于每个HTTP请求。

答案 1 :(得分:1)

据我所知,从源代码可以看出,不支持在XML配置中注册每个http请求。如您所述,仅允许三个instance-scope值(每个依赖项,单个实例和每个生命周期范围)。

此外,查看per-http-request范围界定的工作方式,它使用InstancePerMatchingLifetimeScope注册调用和httpRequest密钥。同样,没有配置“匹配生命周期范围”的XML配置方式。

可行的方法是通过代码进行配置。