Injection de dépendances en .Net Core [ Partie 6 : Utilisation d’un autre Container IOC]

Si vous avez déjà utilisé l’injection de dépendances et que vous avez un Container IOC préféré, sachez qu’il est probablement possible de l’utiliser en .Net Core. Dans cette dernière partie du tutoriel, nous allons voir comment utiliser Autofac dans notre projet .Net Core (3.1).

Pour ce faire, il est nécessaire d’installer les packages Autofac et Autofac.Extensions.DependencyInjection. Modifions ensuite notre fichier Programs.cs, pour lui signaler que nous allons utiliser le container IOC Autofac.

public static IHostBuilder CreateHostBuilder(string[] args) =>
    Host.CreateDefaultBuilder(args)
        .UseServiceProviderFactory(new AutofacServiceProviderFactory())
        .ConfigureWebHostDefaults(webBuilder =>
        {
            webBuilder.UseStartup<Startup>();
        });

Avec Autofac, les dépendances sont enregistrées dans des modules. Pour créer un module, il suffit de créer une classe héritant de la classe Autofac.Module et d’écraser la méthode Load.

public class ApplicationModule : Autofac.Module
{
    protected override void Load(ContainerBuilder builder)
    {
        builder.RegisterType<Operation.Operation>().As<IOperation>().InstancePerDependency(); // Transient
        builder.RegisterType<OperationService>().As<OperationService>().SingleInstance(); // Singleton
    }
}

La dernière étape est d’enregistrer ce module dans notre fichier Startup.cs. Pour cela il faut ajouter la méthode ConfigureContainer().

public void ConfigureContainer(ContainerBuilder builder)
{
    builder.RegisterModule(new ApplicationModule());
}

C’est la fin de ce tutoriel sur l’injection des dépendances en .Net Core. N’hésitez pas à laisser un commentaire afin de m’encourager à continuer à écrire, et surtout si vous avez un avis pour améliorer ce tutoriel.

You may also like...

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *