C# MVC访问应用程序设置

C# MVC访问应用程序设置,c#,asp.net-mvc,C#,Asp.net Mvc,我不确定如何在mvc4应用程序中使用我的应用程序设置。 例如,我有一个设置(存储在db中),是否使用日志记录 我是否应该在应用程序启动时加载一次设置,然后将其存储在会话变量中,并对照该设置进行检查?还是每次调用actionresult时都要从数据库加载设置 这里的最佳做法是什么?您可以在web.config文件中保留此设置: <appSettings> <add key="enableLogging" value="false"/> </appS

我不确定如何在mvc4应用程序中使用我的应用程序设置。 例如,我有一个设置(存储在db中),是否使用日志记录

我是否应该在应用程序启动时加载一次设置,然后将其存储在会话变量中,并对照该设置进行检查?还是每次调用actionresult时都要从数据库加载设置


这里的最佳做法是什么?

您可以在web.config文件中保留此设置:

 <appSettings>
        <add key="enableLogging" value="false"/>
 </appSettings>

请注意,这只存储字符串值,所以您可以对其进行解析或仅与字符串进行比较。

在本例中,将其存储在:

HttpContext.Current.Cache 
将其存储在那里将可用于所有请求,例如,将expire设置为24小时


这不是永久性存储,因此每当它过期时,您需要从DB读取它

此设置是否经常更改?如果您将此设置存储在Web.config中,则在您更改该文件时,应用程序应重新加载该设置。因此,在每次调用中直接从配置数据中提取应用程序应该可以很好地工作。然后在下面给出我的答案。我可以将应用程序设置也写入configurationmanager吗?我希望能够以您可以的形式编辑设置。但当您更改web.config(如保存新值)时,您的网站将自动重新启动。这不是一件好事。因此,在你的情况下,这不是最好的解决方案(不确定您被否决的原因-应将值从DB加载到应用程序缓存中,缓存依赖项在一段时间后超时,以便定期刷新DB中的值。)
HttpContext.Current.Cache