Saya telah melihat sejumlah tutorial dan pertanyaan SO (seperti Pengaturan Aplikasi .Net Core ) tentang membaca appsettings.json di .Net Core 3 dan saya tidak dapat menemukan petunjuk tentang cara-cara ketika berhadapan dengan layanan Pekerja. Tidak ada metode Startup. Sebagai gantinya, saya memiliki Program.cs dengan metode utama:
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>();
});
}
Bagaimana cara saya membaca dari file appsettings.json di Proyek Layanan Pekerja di .Net Core 3?
Saya telah menambahkan referensi ke klien WCF khusus yang saya buat dengan .Net v4.8 dan proyek lain yang hanya memiliki semua Busines Domain Object yang dibagikan di antara seluruh solusi. Solusi saya terutama .Net v4.8 dan saya ingin menggunakan Layanan Pekerja. Proyek Klien membuat Klien WCF secara internal dengan kode sehingga semua ikatan dan titik akhir dapat dikonfigurasi. Jika ini adalah proyek .Net v4.8, saya akan menambahkan yang berikut ke 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>
Sekarang saya perlu pengaturan ini dalam format JSON baru dan membacanya.
Edit
Ini adalah proyek baru. Pekerja tidak melakukan apa-apa:
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);
}
}
}
Dan inilah cara saya mendapatkan jenis proyek ini:
sumber
IConfiguration
alih-alih membuat kelas khusus