C# 我是否可以构建2个IServiceProvider,并且它们可以一起工作(.net core) IServiceCollection服务配置=配置服务(); IServiceProvider serviceProvider=serviceConfiguration.BuildServiceProvider(); IBusControl busControl=CreateServiceBus(服务提供者); IServiceCollection服务=新的ServiceCollection(); 服务。AddSingleton(总线控制); IServiceProvider serviceBus=services.BuildServiceProvider();

C# 我是否可以构建2个IServiceProvider,并且它们可以一起工作(.net core) IServiceCollection服务配置=配置服务(); IServiceProvider serviceProvider=serviceConfiguration.BuildServiceProvider(); IBusControl busControl=CreateServiceBus(服务提供者); IServiceCollection服务=新的ServiceCollection(); 服务。AddSingleton(总线控制); IServiceProvider serviceBus=services.BuildServiceProvider();,c#,dependency-injection,asp.net-core,.net-core,C#,Dependency Injection,Asp.net Core,.net Core,有可能这样做吗,我需要它是因为CreateServiceBus使用第一个IServiceProvider,它通过依赖性注入使用它这就是为什么我需要2个IServiceProvider,因为在这之后我想将busControl注册为IBusControl您可以创建一个工厂方法并在Startup.cs中预热它 IServiceCollection serviceConfiguration = ConfigureServices(); IServiceProvider se

有可能这样做吗,我需要它是因为CreateServiceBus使用第一个IServiceProvider,它通过依赖性注入使用它这就是为什么我需要2个IServiceProvider,因为在这之后我想将busControl注册为IBusControl

您可以创建一个工厂方法并在
Startup.cs
中预热它

    IServiceCollection serviceConfiguration = ConfigureServices();       
    IServiceProvider serviceProvider = serviceConfiguration.BuildServiceProvider();
    IBusControl busControl = CreateServiceBus(serviceProvider);

    IServiceCollection services = new ServiceCollection();
    services.AddSingleton<IBusControl>(busControl);      
    IServiceProvider serviceBus = services.BuildServiceProvider();

public void配置(IAppBuilder应用程序、IBusControl总线)
{
app.Services.getRequiredService();
}

您只需创建一个工厂方法,并在
Startup.cs
中对其进行预热即可

    IServiceCollection serviceConfiguration = ConfigureServices();       
    IServiceProvider serviceProvider = serviceConfiguration.BuildServiceProvider();
    IBusControl busControl = CreateServiceBus(serviceProvider);

    IServiceCollection services = new ServiceCollection();
    services.AddSingleton<IBusControl>(busControl);      
    IServiceProvider serviceBus = services.BuildServiceProvider();

public void配置(IAppBuilder应用程序、IBusControl总线)
{
app.Services.getRequiredService();
}
public void Configure(IAppBuilder app, IBusControl bus)
{
}
public void Configure(IAppBuilder app, IBusControl bus)
{
    app.Services.GetRequriedService<IBusControl>();
}