我有WebApi项目,该项目引用了我的其他项目DataAccess。
在DataAccess中,我已将IDbSessionManager
注册为
builder.RegisterType<DbSessionManager>().As<IDbSessionManager>();
在WebApi项目中,我希望以下一种方式覆盖此注册:
builder.RegisterType<DbSessionManager>().As<IDbSessionManager>().InstancePerRequest();
如果我添加两个注册,则Autofac会抛出异常
没有标记匹配的范围&#39; AutofacWebRequest&#39;从请求实例的范围可见。
如果我从WebApi项目中删除注册或以这种方式更改它,就可以解决这个问题:
builder.RegisterType<DbSessionManager>().As<IDbSessionManager>().SingleInstance();
但我需要根据请求解决IDbSessionManager
。
以前有一个更新容器的解决方案,但现在不推荐使用Update
方法。
还有其他办法吗?也许使用像OnlyIf
这样的扩展方法?