我有以下注册
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)' 从范围可见 请求实例。
答案 0 :(得分:1)
Yikes - 错误信息完全错误:)
问题很可能是你试图直接从容器中解析MyType
(而不是DependencyResolver
,否则你就会从单例中依赖它。{ {1}}组件只能在Web请求的上下文中使用。
尝试从HttpServerUtilityBase
解决它也将在IIS7集成管道模式中失败。
HTH! 尼克