依赖注入和控制反转/NetCore3.1使用Autofac

依赖注入和控制反转

https://blog.csdn.net/weixin_40867255/article/details/91049459

NetCore3.1使用Autofac

虽然netcore有内置容器,但是有一些功能不支持,所以使用Autofac。

首先Nuget安装Autofac

1.Program.cs修改

 

  1. startup.cs里增加方法

 

代码如下

 public void ConfigureContainer(ContainerBuilder builder)

        {

         

            var compilationLibrary = DependencyContext.Default

                .CompileLibraries

                .Where(x => !x.Serviceable

                && x.Type == "project")

                .ToList();

            var count1 = compilationLibrary.Count;

            List<Assembly> assemblyList = new List<Assembly>();

            foreach (var _compilation in compilationLibrary)

            {

                try

                {

                    assemblyList.Add(AssemblyLoadContext.Default.LoadFromAssemblyName(new AssemblyName(_compilation.Name)));

                }

                catch (Exception ex)

                {

                    Console.WriteLine(_compilation.Name + ex.Message);

                }

            }

            builder.RegisterAssemblyTypes(assemblyList.ToArray())

             .AsSelf().AsImplementedInterfaces()

             .InstancePerLifetimeScope();

        }

原文地址:https://www.cnblogs.com/zxking/p/13490710.html