чтобы бросался исключениями если резолвится одна реализация, а в контейнере зарегистрировано несколько?
Неа, низя. var sc = new ServiceCollection(); sc .AddTransient<IMyDep, MyDep1>() .AddTransient<IMyDep, MyDep2>() .AddTransient<Service>(); C# var lu = sc.ToLookup(i => i.ServiceType); foreach (var g in lu.Where(g => g.Count() > 1)) { Console.WriteLine($"Multiple implementations exist for {g.Key}:"); foreach (var impl in g) { Console.WriteLine(new { impl.Lifetime, impl.ImplementationFactory, impl.ImplementationInstance, impl.ImplementationType }); } }
Можно руками перебрать все зарегистрированные сервисы перед фиксацией коллекции и ругнуться на что-нибудь такое.
Обсуждают сегодня