ฉันได้ดูบทเรียนจำนวนหนึ่งและคำถาม SO (เช่นการตั้งค่าแอพ. Net Core ) เกี่ยวกับการอ่าน appsettings.json ใน. Net Core 3 และฉันไม่สามารถหาคำแนะนำใด ๆ เกี่ยวกับวิธีใช้เมื่อจัดการกับบริการของผู้ปฏิบัติงาน ไม่มีวิธีการเริ่มต้น แต่ฉันมี Program.cs ด้วยวิธีการหลัก:
public class Program
{
public static void Main(string[] args)
{
CreateHostBuilder(args).Build().Run();
}
public static IHostBuilder CreateHostBuilder(string[] args) =>
Host.CreateDefaultBuilder(args)
.ConfigureServices((hostContext, services) =>
{
services.AddHostedService<Worker>();
});
}
ฉันจะอ่านเกี่ยวกับไฟล์ appsettings.json ใน Worker Service Project ใน. Net Core 3 ได้อย่างไร
ฉันได้เพิ่มการอ้างอิงไปยังไคลเอนต์ WCF ที่กำหนดเองที่ฉันสร้างด้วย. Net v4.8 และโครงการอื่นที่มีเพียง Busines Domain Object ที่ใช้ร่วมกันระหว่างโซลูชันทั้งหมด วิธีการแก้ปัญหาของฉันคือ. Net v4.8 เป็นหลักและฉันต้องการใช้บริการผู้ปฏิบัติงาน โครงการไคลเอนต์สร้างไคลเอนต์ WCF ภายในด้วยรหัสเพื่อผูกและปลายทางทั้งหมดสามารถกำหนดค่าได้ หากนี่เป็นโครงการ. Net v4.8 ฉันจะเพิ่มสิ่งต่อไปนี้ใน app.config:
<appSettings>
...
<add key="AminServiceUri" value="http://localhost:45108/ServiceHost/v1/AminService.svc" />
<add key="BillServiceUri" value="http://localhost:45108/ServiceHost/v1/BillService.svc" />
<add key="CustomerServiceUri" value="http://localhost:45108/ServiceHost/v1/CustomerService.svc" />
<add key="EpayServiceUri" value="http://localhost:45108/ServiceHost/v1/EpayService.svc" />
<add key="FinanceServiceUri" value="http://localhost:45108/ServiceHost/v1/FinanceService.svc" />
<add key="GrpServiceUri" value="http://localhost:45108/ServiceHost/v1/GrpService.svc" />
<add key="MetaServiceUri" value="http://localhost:45108/ServiceHost/v1/MetaService.svc" />
<add key="ReportServiceUri" value="http://localhost:45108/ServiceHost/v1/ReportService.svc" />
<add key="ServiceInfoServiceUri" value="http://localhost:45108/ServiceHost/v1/ServiceInfoService.svc" />
<add key="UsersServiceUri" value="http://localhost:45108/ServiceHost/v1/UsersService.svc" />
...
<add key="ExcessiveLogging" value="false" />
...
</appSettings>
ตอนนี้ฉันต้องการการตั้งค่าเหล่านี้ให้อยู่ในรูปแบบ JSON ใหม่และอ่าน
แก้ไข
นี่เป็นโครงการใหม่ คนงานไม่ได้ทำอะไรเลย:
public class Worker : BackgroundService
{
private readonly ILogger<Worker> logger;
public Worker(ILogger<Worker> logger)
{
this.logger = logger;
}
protected override async Task ExecuteAsync(CancellationToken stoppingToken)
{
while (!stoppingToken.IsCancellationRequested)
{
logger.LogInformation("Worker running at: {time}", DateTimeOffset.Now);
await Task.Delay(5000, stoppingToken);
}
}
}
และนี่คือวิธีที่ฉันได้รับโครงการประเภทนี้: