.NET6 Minimal API 集成Autofac

前提

集成Autofac前需要先添加两个依赖包

可以通过 NuGet 进行安装,使用以下命令:

dotnet add package Autofac
dotnet add package Autofac.Extensions.DependencyInjection

集成Autofac

在不使用Minimal API之前我们集成 Autofac大概如下:

在Program.cs文件中

public static class Program
{
    public static void Main(string[] args)
        => CreateHostBuilder(args).Build().Run();

    public static IHostBuilder CreateHostBuilder(string[] args) =>
        Host.CreateDefaultBuilder(args)
            .UseServiceProviderFactory(new AutofacServiceProviderFactory()) //变更默认容器
            .ConfigureWebHostDefaults(webBuilder <details>
            {
                webBuilder.UseStartup<Startup>();
            });
}

然后再Startup.cs文件中

public class Startup
{
    public void ConfigureContainer(ContainerBuilder containerBuilder)
    {
        // 注册服务关系
    }
}

但是在.NET6 中使用了Minimal API方式,对应的Startup.cs文件已经没有了,那么该如何处理呢?
其实同样没有区别
具体如下

var builder = WebApplication.CreateBuilder(args);

builder.Host.UseServiceProviderFactory(new AutofacServiceProviderFactory()); // 变更默认容器
builder.Host.ConfigureContainer<ContainerBuilder>(builder => 
{
     // 注册服务关系
});

参考链接

How-To: Minimal IoC solution using AutoFac — C#
Using Autofac in .NET 6 Minimal API’s
ASP.NET Core — Autofac 7.0.0 documentation

posted @ 2024-03-26 17:05  Dyhuang  阅读(19)  评论(0编辑  收藏  举报