我的 ASP.NET 应用程序读取一个 xml 文件以确定它当前所处的环境(例如本地、开发、生产)。
每次打开与数据库的连接时,它都会检查此文件,以便知道从应用程序设置中获取哪个连接字符串。
我正在进入一个开发阶段,效率正在成为一个问题。我认为每次我希望访问数据库时(经常)必须读取物理磁盘上的文件不是一个好主意。
我正在考虑将连接字符串存储在 Application["ConnectionString"] 中。所以代码是
public static string GetConnectionString
{
if (Application["ConnectionString"] == null)
{
XmlDocument doc = new XmlDocument();
doc.Load(HttpContext.Current.Request.PhysicalApplicationPath + "bin/ServerEnvironment.xml");
XmlElement xe = (XmlElement) xnl[0];
switch (xe.InnerText.ToString().ToLower())
{
case "local":
connString = Settings.Default.ConnectionStringLocal;
break;
case "development":
connString = Settings.Default.ConnectionStringDevelopment;
break;
case "production":
connString = Settings.Default.ConnectionStringProduction;
break;
default:
throw new Exception("no connection string defined");
}
Application["ConnectionString"] = connString;
}
return Application["ConnectionString"].ToString();
}
我没有设计应用程序,所以我认为每次读取 xml 文件肯定是有原因的(在应用程序运行时更改设置?)我对这里的内部工作原理知之甚少。优缺点都有什么?您认为通过实现上述功能我会看到小的性能提升吗?
谢谢