.Net Core + Autofac

Enviroment:

.Net(5.0)

Autofac(6.2.0)

Autofac.Configuration(6.0.0)

Autofac.Extensions.DependencyInjection(7.1.0)

1. first intall follow packages

.Net Core + Autofac

 2. use autofac in 'Program.cs' file to replace original IOC of .net core

.Net Core + Autofac

 3. add ConfigureContainer methord  in startup,

.Net Core + Autofac

 4. add autofac.json file  

{
  "defaultAssembly": "AutofacService",
  "components": [
    {
      "type": "AutofacService.RemoteLogger, AutofacService",
      "services": [
        {
          "type": "AutofacIService.ISimpleLogger,AutofacIService"
        }
      ],
      "injectProperties": true
    }
  ]
}

5. register configuration module in startup 

    public void ConfigureContainer(ContainerBuilder builder)
        {
            //builder.RegisterType<SimpleLogger>().As<ISimpleLogger>().InstancePerLifetimeScope();
            ////register a generic type like Respository<>
            //builder.RegisterGeneric(typeof(DatabaseExtension<>)).As(typeof(IDatabaseExtension<>)).InstancePerLifetimeScope();

            //var assemblyIService = Assembly.Load("autofac_demo.IService");
            //var assemblyService = Assembly.Load("autofac_demo.Service");
            //builder.RegisterAssemblyTypes(assemblyIService, assemblyService).Where(t => t.Name.EndsWith("Service")).AsImplementedInterfaces();

            //load config json
            var config = new ConfigurationBuilder().Add(new JsonConfigurationSource()
            {

                Path = "Config/autofac.json",
                Optional = false,
                ReloadOnChange = true
            });

            builder.RegisterModule(new ConfigurationModule(config.Build()));
            //builder.Build();

        }

6. test successful

.Net Core + Autofac

 

上一篇:深入浅出依赖注入容器——Autofac


下一篇:.NET依赖注入[32]