public static class WebConfig
{
private static IList<SystemConfigs> sysconfkeys;
static WebConfig()
{
sysconfkeys = systemconfigrep.GetAllSystemConfig();
}
private static string _SMTPPort = "";
public static string SMTPPort
{
get
{
return _SMTPPort = sysconfkeys.FirstOrDefault(e => e.metakey == "SMTPPort") != null ? sysconfkeys.FirstOrDefault(e => e.metakey == "SMTPPort").metavalue : "25";
}
}
private static string _SMTPUsername = "";
public static string SMTPUsername
{
get
{
return _SMTPUsername = sysconfkeys.FirstOrDefault(e => e.metakey == "SMTPUsername") != null ? sysconfkeys.FirstOrDefault(e => e.metakey == "SMTPUsername").metavalue : "";
}
}
}
用法:WebConfig.SMTP用户名;
目前:我在我的视图或控制器中以上述方式在我的系统中使用系统级变量。但上面的问题是静态构造函数最初只被调用一次。如果更改了 SMTPUsername,新的 SMTPUsername 将不会反映在系统中。我必须重新启动 iis 池才能使其再次调用。
我想要的是:开发一种机制,当某个变量发生变化时会触发数据库。如果没有任何变化,则访问已经获取的变量。有人可以对此提供一些见解,asp.net mvc 中的任何推荐方式。
我想做的是实现缓存。但我能做到的适当方式是什么?