Net6的WebapplicationBuilder上的UseDefaultServiceProvider在哪里

Chr*_*son 2 c# asp.net-core .net-5 .net-6.0

我有一个单元测试,它使用以下内容来完全验证所有依赖项注入配置:

public class StartupTests
{
    public void ConfigurationIsValid()
    {
        var host = Program.CreateHostBuilder(Array.Empty<string>())
            .UseDefaultServiceProvider(
                (_, options) =>
                {
                    options.ValidateOnBuild = true;
                    options.ValidateScopes = true;
                });
                
        var action = () => host.Build();
        
        action.Should().NotThrow();
    }
}
Run Code Online (Sandbox Code Playgroud)

当使用 .NET 5IHostBuilder时,这很有效Host.CreateDefaultBuilder(),但我试图找到该方法在 .NET 6 中引入的UseDefaultServiceProvider()新方法中的位置。WebApplicationBuilder

Chr*_*son 7

此方法是 .NET 6 中属性的扩展WebApplicationBuilder.Host

更新后的单元测试如下所示:

public void ConfigurationIsValid()
{
    var builder = Program.CreateHostBuilder(Array.Empty<string>());
    builder.Host.UseDefaultServiceProvider(
        (_, options) =>
        {
            options.ValidateOnBuild = true;
            options.ValidateScopes = true;
        });

    var action = () => builder.Build();

    action.Should().NotThrow();
}
Run Code Online (Sandbox Code Playgroud)