Startup.ConfigureServices 中方法调用的顺序重要吗?

H2O*_*aCl 8 asp.net dependency-injection

Startup.ConfigureServices 中 .AddXxxxxxx 方法调用的顺序重要吗?

public void ConfigureServices(IServiceCollection services)
{
    services.AddTransient<IWorkService, WorkService>();

    services.AddHostedService<QueuedBackgroundService>(); 
    services.AddTransient<IQueuedBackgroundService, QueuedBackgroundService>();

    services.AddTransient<IJobService, JobService>();

    services.AddControllers();
}
Run Code Online (Sandbox Code Playgroud)

Nko*_*osi 8

默认情况下, 向服务集合添加服务不依赖于顺序(不包括与服务集合交互的第 3 方集成框架)

在注册多个相同抽象的情况下,后续调用会在.AddXxxxxxx解析为抽象时覆盖前一个调用,并在通过 解析多个服务时添加到前一个调用IEnumerable<IMyType>。服务按照通过 解决时注册的顺序显示IEnumerable<{SERVICE}>

参考:服务注册方法

您基本上是在向集合中添加一组指令。

构建提供程序时,框架将检查集合中所需的内容,以便提供程序知道如何处理要解析的服务请求。