using Autofac.Features.AttributeFilters;
public static void Main()
var builder = new ContainerBuilder();
builder.RegisterType<A>().As<IA>().SingleInstance();
builder.RegisterType<B>().As<IB>().WithAttributeFiltering().Keyed<IB>("DependentB").SingleInstance();
builder.RegisterType<CompositeB>().As<IB>().WithAttributeFiltering().Keyed<IB>("CompositeB").SingleInstance();
var container = builder.Build();
var bs = container.Resolve<IB[]>();
Console.WriteLine(b.GetType().Name);
var a = container.Resolve<IA>();
Console.WriteLine(a.GetType().Name);
Console.WriteLine(a.DepProp.Count());
public A(B[] dependencies) => _dependencies = dependencies;
private B[] _dependencies;
public B[] DepProp => _dependencies;
public class CompositeB : IB {
public CompositeB([KeyFilter("DependentB")]IB dependency) => _dependency = dependency;