如何验证 ASP.NET Core DI 中所有注册的类型?

Ant*_*ean 6 dependency-injection inversion-of-control asp.net-core

我想检查我建立的类型注册在Startup.cs运行时是否全部有效(无论是在启动服务时还是作为测试套件的一部分)。Lamar 和其他容器都有这样的功能。

Ant*_*ean 6

ASP.NET Core 3.x 实际上引入了范围和提供程序验证的功能。这两者在不同的上下文中都很有用(请参阅下面的帖子和示例代码)。

Host.CreateDefaultBuilder(args)
    .ConfigureWebHostDefaults(webBuilder =>
    {
        webBuilder.UseStartup<Startup>();
    })
    .UseDefaultServiceProvider((context, options) =>
    {
        options.ValidateScopes = context.HostingEnvironment.IsDevelopment();
        options.ValidateOnBuild = true;
    });
Run Code Online (Sandbox Code Playgroud)

https://andrewlock.net/new-in-asp-net-core-3-service-provider-validation/