如何从现有的创建IServiceCollection?

比方说,我有某种子应用程序,它需要在主应用程序中注册的某些服务以及其自身的某些特定服务。我想知道是否有更好/自然的方法(也许是某种扩展方法?)。这就是我所做的:

public static IServiceCollection ConfigureServices(this IServiceCollection main)
{
    IServiceCollection sub = new ServiceCollection();
    foreach (var serv in main)
    {
        sub.Add(serv);
    }
    return sub;
}

谢谢。

qingwa406 回答:如何从现有的创建IServiceCollection?

您可以使用ConfigureServices的{​​{1}}方法来注入服务集合。然后,该实例将传递给Startup类的IWebHostBuilder方法。我认为扩展方法是必经之路。但是,我认为将扩展方法重命名为ConfigureServices是有意义的:

AddRange

这是扩展方法,它是您的扩展方法:

WebHost.CreateDefaultBuilder(args)
        .ConfigureServices(servicesCollection =>
         {
             var mainServiceCollection = ...;
             servicesCollection.AddRange(mainServiceCollection);
         })
        .UseStartup<Startup>();
本文链接:https://www.f2er.com/3135668.html

大家都在问