MS DI должен быть простым, с которым легко начать работу и который можно легко использовать в качестве основы для других фреймворков IoC / DI для подключения к нему.
У него нет автоматической регистрации, сканирования сборки и поддержки декоратора / перехвата.Если вам нужны такие функции, вы должны использовать сторонний контейнер, такой как Unity, который вы уже назвали.
У Unity уже есть точка расширения для Microsoft.Extensions.DependencyInjection
, которую можно найти здесь, на GitHub или на NuGet .
Как описано в GitHub, все, что вам нужно сделать, это запустить
Install-Package Unity.Microsoft.DependencyInjection
Чтобы установить пакет и добавить его в свой код
В WebHostBuilder добавьте метод UseUnityServiceProvider (...)
public static IWebHost BuildWebHost(string[] args) =>
WebHost.CreateDefaultBuilder(args)
.UseUnityServiceProvider() <------ Add this line
.UseStartup<Startup>()
.Build();
Добавьте метод в свой класс запуска
public void ConfigureContainer(IUnityContainer container)
{
// Could be used to register more types
container.RegisterType<IMyService, MyService>();
}