簡體   English   中英

在.Net 6 Worker服務中使用appsettings.json

[英]Using appsettings.json in .Net 6 Worker service

我想添加一個依賴於 appsettings 的 singleton 服務嗎?

我將如何在 .Net 6 worker 服務啟動中執行此操作?

using AutoMapper;

var mapperConfig = new MapperConfiguration(mc =>
{
    mc.AddProfile(new MappingProfile());
});

IMapper mapper = mapperConfig.CreateMapper();

IHost host = Host.CreateDefaultBuilder(args)
    .ConfigureServices(services =>
    {
        services.AddHostedService<Worker>();
        services.AddSingleton(mapper);
        services.AddSingleton<IOrderNumberGenerator, OrderNumberGenerator>();

        services.AddSingleton(new ServiceIwantToCall(<--I need too use apsettings here-->));
    })
    .Build();

await host.RunAsync();

目前您正在嘗試注冊ServiceIwantToCall的實例。 您可以改為注冊一個工廠方法來解析一個,一旦它被解析,它將是一個 singleton。例如,這個匿名方法:

services.AddSingleton(serviceProvider => { 
    // resolve the configuration provider from the container
    IConfiguration config = serviceProvider.GetRequiredService<IConfiguration>();

    // get the config value and instantiate a ServiceIwantToCall
    // return the instantiated service
    string someValue = config["myValueKey"];
    return new ServiceIwantToCall(someValue);
});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM