我有asp.net Core Rc2应用程序。要存储系统设置,我使用IOptions机制,配置如下:
$url = $this->tag->linkTo(
array(
array(
'for' => 'application-details',
'formUrl' => $form->url,
'id' => $id
),
'Show'
)
);
所有参数都是从DocumentParametersConfigureOption类中的数据库加载的。由于这个解决方案,所有系统设置都可以很容易地注入到控制器/服务中,并缓存在服务器端(它们仅在应用程序启动时加载)。
我还有一个页面,可以修改设置(在数据库中修改)。我希望在用户点击保存时重新加载它们,而无需重新启动Web应用程序。
答案 0 :(得分:3)
在memory caching中使用。
在加载时,将配置放在那里。在确定的连接/解析,从那里阅读。当您通过UI更新它时,只需使缓存无效(即使用取消令牌,请参阅上面的链接)或者只是将其手动放回到那里覆盖现有值。
答案 1 :(得分:0)
我会创建第二组IOptions
并为其注入AddTransient
或AddScoped
。
每次请求时都会创建瞬态服务,并且每个请求都会创建一次范围服务。
Here's a link有关服务生命周期的文档。
答案 2 :(得分:0)
在asp.net核心1.1上,您可以使用IOptionsSnapshot
实现此目的