Autofac 解析 MatchingLifetimeScope 集合

Autofac Resolving MatchingLifetimeScope Collection

我想从命名范围解析所有服务的 IEnumerable,但这不起作用,因为服务也从其他命名范围解析。

例子

var containerBuilder = new ContainerBuilder();
containerBuilder.RegisterType<B>().As<IMyInterface>().InstancePerMatchingLifetimeScope("B");
containerBuilder.RegisterType<A>().As<IMyInterface>().InstancePerMatchingLifetimeScope("A");

IContainer container= containerBuilder.Build();

ILifetimeScope lifetimeScope = container.BeginLifetimeScope("A");
lifetimeScope.Resolve<IEnumerable<IMyInterface>>();

抛出DependencyResolutionException: Unable to resolve the type 'ConsoleApp2.B' because the lifetime scope it belongs in can't be located.

有没有办法只解析当前范围内的服务?

我正在使用 Autofac 6.0.0

看来您遇到了错误。 There's a similar issue already open 为此;我会将您的具体案例的重现添加到问题中,并将其更新为标记为错误而不是增强。

目前我不知道有任何解决方法可以解决这个问题。对不起。