在Autofac中,有人可以解释当我以下列方式注册组件时会发生什么:
builder.RegisterType<SomeComponent>()
.InstancePerMatchingLifetimeScope(contextTag)
.InstancePerLifetimeScope();
Q1。这是注册组件的有效方法吗?
Q2。 InstancePerLifetimeScope是否会覆盖另一个?如果我尝试解析'contextTag'范围内的组件,我会得到异常吗?
答案 0 :(得分:0)
A1。这不是无效的。但是,看到并理解需求是令人困惑的。
A2。该组件将在两个范围内可用,并将在请求的范围内解决。
我会尽量避免这种情况。但如果你无法完全避免它,那么使用不同的autofac模块在不同的范围内注册组件会更清晰。