2
我有下面的代码,我使用一个Web API DelegatingHandler添加新的组件删除所有组件的现有注册
var registration = RegistrationBuilder
.ForDelegate((c, p) => sessionData)
.ExternallyOwned()
.AsSelf()
.InstancePerRequest()
.CreateRegistration();
var componentRegistry = ((AutofacWebApiDependencyScope) request.GetDependencyScope()).LifetimeScope.ComponentRegistry;
componentRegistry.Register(registration, true);
注册我有几个注册的组件之前,但加入新的后一,所有其他注册都没有了,只有我添加的一个存在。有谁知道为什么会发生这种情况?我查看了Autofac代码,找不到为什么会发生这种情况的原因,但也许我错过了一些显而易见的事情。
更新1
那么多挖掘一下后,起初我有18名注册,加入新的后我基本上是一个,如果我尝试使用相同的范围,以解决该组件,没有任何问题。稍后在执行过程中,当控制器被击中时,范围仍然有18个注册,但不是我添加的注册。是否有可能将注册添加到其他范围?我检查了它,标签确实是“AutofacWebRequest”之一。
谢谢
听起来很正常,你有什么问题吗? :-) –
那么,我预计有19个注册不是18,除非我错过了某些东西,可能就是这样。 – Marco