.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