【发布时间】:2020-03-16 16:11:56
【问题描述】:
我想在整个项目中缓存连接字符串并使用缓存的对象。我试过如下
public static void Demo()
{
Hashtable Hashtable = new Hashtable()
Hashtable.Add("WEBConnectionString", ConfigurationManager.ConnectionStrings["WEBConnectionString"].ConnectionString);
HttpContext.Current.Application["CachedValue"] = Hashtable;}
public static string Method(string key)
{
string result = string.Empty;
Hashtable CachedObject = (Hashtable)HttpContext.Current.Application["CachedValue"];
if (CachedObject != null && CachedObject.ContainsKey(key))
{
result = CachedObject[key].ToString();
}
return result;
}
并像这样访问
string conString = Utility.Method("WEBConnectionString");
但是CachedObject.ContainsKey(key) 条件变得错误。我在这里做错了什么?或者有没有其他方法可以缓存连接字符串。
【问题讨论】:
-
这是一个什么样的网络应用程序? MVC?网络表单?
-
嗯,您可以使用 IOC 容器和 DI,并让软件自动提供数据库上下文的实例 - 但我更好奇为什么您看不到连接的当前位置字符串喜欢(配置文件/配置管理器)作为整个项目都可用的缓存?
-
@mason Web 表单
-
你为什么不直接访问
ConfigurationManager并跳过缓存? -
@Train 这就是要求。我必须
标签: c# webforms hashtable connection-string