小编PHP*_*ODE的帖子

无法使用 IOptionsMonitor 检测 ASP.NET Core 中的更改

我正在开发 Asp.Net Core 应用程序

我想在运行应用程序后更改配置设置

我正在使用 IOptionsMonitor,但它没有检测到变化

在 Startup.cs -> Configuration() 方法中我有

services.Configure<Config>(Configuration.GetSection("someConfig"));
Run Code Online (Sandbox Code Playgroud)

在读取这些配置设置的另一个类中,我写了类似的东西

var someConfig= serviceProvider.GetRequiredService<IOptionsMonitor<Config>>();
Run Code Online (Sandbox Code Playgroud)

但是当我更改配置文件(Json File)时,没有检测到更改,并且someConfig没有更改。

配置 POCO 类:

public class Config
{
    public string name {get; set;}
    //More getters and setters
}
Run Code Online (Sandbox Code Playgroud)

编辑:

services.AddSingleton<ConfigHelpers>;
Run Code Online (Sandbox Code Playgroud)

我正在使用一个单例对象,我试图在其中读取配置。如果它不是 snigleton,它工作正常。即使在单例对象中,有没有办法更改配置?

在 ConfigHelpers.cs

var someConfig= serviceProvider.GetRequiredService<IOptionsMonitor<Config>();
Run Code Online (Sandbox Code Playgroud)

由于它在 Startup.cs 中定义为单例,因此不会反映对 Config 所做的更改。

c# asp.net-core

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

标签 统计

asp.net-core ×1

c# ×1