如何在 startup.cs 中运行/触发服务?

JKL*_*KLM 2 .net asp.net-core-mvc .net-core asp.net-core asp.net-core-2.0

我有一个服务可以获取令牌并保存在缓存中,我添加了如下所示的服务,但是当应用程序启动时它没有运行我需要做什么才能在启动时触发这个服务

public void ConfigureServices(IServiceCollection services)
 {
   services.AddScoped<ITokenService,TokenService>();
}
Run Code Online (Sandbox Code Playgroud)

Chr*_*att 5

调用services.AddScoped只是将其添加到服务集合中。结果什么也没有发生,即它不会只是自动更新一个实例并在它上面运行一些方法。

如果您需要在启动时发生某事,您需要在Program.cs:

public static void Main(string[] args)
{
    var host = CreateWebHostBuilder(args).Build();

    var tokenService = host.Services.GetRequiredService<ITokenService>();
    tokenService.DoSomething();

    host.Run();
}
Run Code Online (Sandbox Code Playgroud)