如何使用AutofacWebTypesModule来解析HttpServerUtilityBase

时间:2011-02-16 23:22:06

标签: asp.net-mvc-3 autofac

我有以下注册

    builder.RegisterModule(new AutofacWebTypesModule());
    builder.Register<MyType>(ctx =>
    {
        var server = ctx.Resolve<HttpServerUtilityBase>();
        ...
    });

当我尝试通过Controller上的构造函数解析MyType时,我得到以下异常。我做错了什么?

  

Autofac.Core.DependencyResolutionException   用户代码未处理   消息=没有匹配的范围   表达   '值(Autofac.Builder.RegistrationBuilder`3 + LT;&GT; c__DisplayClass0 [System.Web.HttpServerUtilityBase,Autofac.Builder.SimpleActivatorData,Autofac.Builder.SingleRegistrationStyle])。lifetimeScopeTag.Equals(scope.Tag)'   从范围可见   请求实例。

1 个答案:

答案 0 :(得分:1)

Yikes - 错误信息完全错误:)

问题很可能是你试图直接从容器中解析MyType(而不是DependencyResolver,否则你就会从单例中依赖它。{ {1}}组件只能在Web请求的上下文中使用。

尝试从HttpServerUtilityBase解决它也将在IIS7集成管道模式中失败。

HTH! 尼克