asp.net-core - 什么取代了 CallContextServiceLocator?

标签 asp.net-core

在 ASP.NET 5 的 beta 8 中,我可以访问 CallContextServiceLocator。 RC1 中不再提供此功能。

如何替换下面代码中对 CallContextServiceLocator 的调用。我正在使用该代码创建服务的测试实例。

    private static TestServer CreateTestServer(HttpMessageHandler backchannelHttpHandler = null)
    {
        HostingEnvironment hostingEnvironment = new HostingEnvironment { EnvironmentName = "Testing", };
        Microsoft.Extensions.PlatformAbstractions.IApplicationEnvironment appEnv =
            CallContextServiceLocator.Locator.ServiceProvider.GetRequiredService<Microsoft.Extensions.PlatformAbstractions.IApplicationEnvironment>();

        Startup serviceStartup = new Startup(hostingEnvironment, appEnv, backchannelHttpHandler);

        Action<IApplicationBuilder> configureApp = app => serviceStartup.Configure(app, appEnv, new LoggerFactory());
        Action<IServiceCollection> configureServices = svc => serviceStartup.ConfigureServices(svc);

        WebApplicationBuilder webAppBuilder = new WebApplicationBuilder();
        webAppBuilder.Configure(configureApp);
        webAppBuilder.ConfigureServices(configureServices);

        return new TestServer(webAppBuilder);
    }

最佳答案

本身没有替代品,它已经被埋葬了,RIP:)。您可以使用平台服务来获取特定组件。此外,托管 API 也经过了改进,不再那么糟糕,因此默认情况下不需要向其中传递任何内容。

关于asp.net-core - 什么取代了 CallContextServiceLocator?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34939618/

相关文章:

c# - 文件结果找不到文件

c# - 暴露的端口 0 未映射。测试容器 C#

c# - 无法在 asp.net core 3.1 中添加对 CSharpCompilation 的 MetadataReference 的引用

具有 (CSP) 内容安全策略的 Angular 5 和 ASP.Net Core

c# - 没有注册类型 'Microsoft.Framework.DependencyInjection.ServiceLookup.IServiceManifest' 的服务

c# - 更新到 .net core 2.2 后信号 r 不工作

c# - 在 ASP.NET Core 中嵌入 View 本地化

azure - 是否可以将一个 ASP.NET Core 应用程序指向 2 个应用程序洞察实例

c# - 使用授权属性时的 Cors 策略错误

javascript - 将 blob 文件发送到服务器