相关疑难解决方法(0)

发布为 Windows 服务后获取 .net core 3.0 辅助服务上的 appsettings.json 值

按照答案:\n .NET Core 3 Worker 服务设置依赖注入

\n\n

我可以在 Worker.cs 类的“调试”或“发布”中获取设置\n但是当部署为 Windows 服务时,此值返回为 null

\n\n

工人.cs

\n\n
public class Worker : BackgroundService\n{\n    private readonly ILogger<Worker> _logger;\n    private readonly ServiceSettings _serviceSettings;\n    private readonly ServiceConfigurations _serviceConfigurations;\n\n    public Worker(ILogger<Worker> logger, IOptions<ServiceConfigurations> serviceConfigurations, IOptions<ServiceSettings> serviceSettings) \n    {\n        _logger = logger;\n        _serviceConfigurations = serviceConfigurations.Value;\n\n        _logger.LogInformation($"Worker running at: {DateTime.Now}");\n        _serviceSettings = serviceSettings.Value;\n\n        string retornoPathLog = null;\n        string PathLog = _serviceSettings.PathLog;\n\n        if (!Directory.Exists(PathLog))\n        {\n            retornoPathLog = "Diret\xc3\xb3rio de LOG " + PathLog;\n            Directory.CreateDirectory(PathLog);\n        }\n\n        //Configure Serilo for Logging\n …
Run Code Online (Sandbox Code Playgroud)

c# asp.net-core

5
推荐指数
1
解决办法
7128
查看次数

IOptions 的 .NET Core 3 Worker 服务依赖注入配置

我有一个关于 Worker Service 的 DI 问题,该问题在下面的另一篇文章中得到了解答。

.NET Core 3 Worker 服务设置依赖注入

如果我想添加一些帮助类并按如下方式注册怎么办。我如何使用该选项注入。因为我想,我错过了一些东西......

public static IHostBuilder CreateHostBuilder(string[] args)
    {
        return Host.CreateDefaultBuilder(args)

            .ConfigureAppConfiguration((hostContext, config) =>
            {
                // Configure the app here.
                config
                .SetBasePath(Environment.CurrentDirectory)
                .AddJsonFile("appsettings.json", optional: true, reloadOnChange: true)
                .AddJsonFile($"appsettings.{hostContext.HostingEnvironment.EnvironmentName}.json", optional: true);

                config.AddEnvironmentVariables();

                Configuration = config.Build();

            })

            .ConfigureServices((hostContext, services) =>
            {

                services.AddOptions();               

                services.Configure<MySettings>(Configuration.GetSection("MySettings"));                    


                services.AddSingleton<RedisHelper>();

                services.AddHostedService<Worker>();                   

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

RedisHelper 类有一个像 Worker 这样的构造函数。

public static MySettings _configuration { get; set; }

public RedisHelper(IOptions<MySettings> configuration)
{
    if (configuration != null)
        _configuration = configuration.Value;
}
Run Code Online (Sandbox Code Playgroud)

c# dependency-injection backgroundworker .net-core

4
推荐指数
1
解决办法
3713
查看次数