вы можете использовать класс запуска и настроить контейнер IOC в этом классе. Вы можете использовать интерфейс маркера (пожалуйста, найдите шаблон интерфейса маркера в google), чтобы разрешить все классы, которые есть в вашем проекте, для реализации внедрения зависимости в ваши классы.если вам нужен конкретный интерфейс, когда он существует в конкретном конструкторе классов, вы должны использовать DI и зарегистрировать весь интерфейс в своем приложении, прежде чем приложение запустит ваш код.Я думаю, что этот код может помочь вам: этот код с Autofac:
builder.RegisterType<UnitOfWork>().As<IUnitOfWork>().InstancePerLifetimeScope();
Assembly serviceLayerAssembly = typeof(IUserServices).Assembly;
builder.RegisterAssemblyTypes(assemblies: serviceLayerAssembly)
.AssignableTo<IMarkedServiceInterface>().AsImplementedInterfaces().InstancePerLifetimeScope();
builder.RegisterAssemblyTypes(assemblies: serviceLayerAssembly)
.AssignableTo<IMarkedMapperInterface>().AsImplementedInterfaces().InstancePerLifetimeScope();