-
Notifications
You must be signed in to change notification settings - Fork 17
ThirdParty
If you would prefer to use an alternate dependency injection (DI) container, you can easily swap out the built-in AutoDI container with a different one. You can find full examples using many popular DI containers here.
Because AutoDI is built on top of Microsoft.Extensions.DependencyInjection.Abstractions
, any popular DI container that already provides support the Microsoft.Extensions.DependencyInjection.Abstractions
can easily be added. For this example we will use Microsoft.Extensions.DependencyInjection
.
To register a different container, you must register an implementation of IServiceProviderFactory<IServiceCollection>
with the AutoDI.IApplicationBuilder
. The last registered implementation will be used as the DI container.
To do this, we must register as part of the initialization (using a setup method).
using AutoDI;
using Microsoft.Extensions.DependencyInjection;
[SetupMethod]
public static void SetupDI(IApplicationBuilder builder)
{
builder.ConfigureServices(services => services
.AddSingleton<IServiceProviderFactory<IServiceCollection>, DefaultServiceProviderFactory>());
}
This example uses DefaultServiceProviderFactory
, the Microsoft.Extensions.DependencyInjection
implementation, but you can use any popular library that provides an implementation of IServiceProviderFactory<IServiceCollection>
. For other DI containers you will need to create a new implementation.