我根据this (Basic sample of Entity Framework custom provider)文章编写了一个配置提供程序。
我还覆盖了base class的Set方法,将配置保存回数据库。
public virtual void Set(string key, string value)
{
// save key / value pair to db.
}
如果我保存这样的配置,这也可以正常工作:
IConfiguration configuration = ...
configuration["Key"] = "value";
但如果我想通过自定义选项类保存它,这不起作用:
public class MyOptions
{
public string Key { get; set; }
}
public class HomeController : Controller
{
private readonly MyOptions _options;
public HomeController(IOptions<MyOptions> optionsAccessor)
{
_options = optionsAccessor.Value;
}
public IActionResult Index()
{
_options.Key = "new value"; // <-- not calling the set in my provider
}
}
有人知道如何解决这个问题吗?
更新
我知道配置框架无法跟踪我对MyOptions
所做的更改,因此无法自动更新它。但还有其他方法可以触发保存配置吗?