मैं appsettings.json in .Net Core 3 को पढ़ने के बारे में कई ट्यूटोरियल और SO प्रश्न (जैसे ऐप सेटिंग्स .Net कोर ) देख रहा हूं और वर्कर सेवा के साथ काम करते समय मुझे कोई संकेत नहीं मिल सकता है। कोई स्टार्टअप विधि नहीं है। इसके बजाय, मेरे पास मुख्य विधि के साथ एक 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>();
});
}
मैं .net Core 3 में एक कार्यकर्ता सेवा परियोजना में appsettings.json फ़ाइल से पढ़ने के बारे में कैसे जाना है?
मैंने एक कस्टम WCF क्लाइंट के साथ एक संदर्भ जोड़ा है जिसे मैंने .Net v4.8 और एक अन्य परियोजना के साथ बनाया है जिसमें पूरे समाधान के बीच बस सभी बसाइन्स डोमेन ऑब्जेक्ट साझा हैं। मेरा समाधान मुख्य रूप से .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);
}
}
}
और यहां बताया गया है कि मुझे यह प्रोजेक्ट किस प्रकार मिलता है: