我使用的是Asp.net 3.5和C#
我必须将XmlDocument添加到我的应用程序状态,以便每次我的应用程序都不访问我的文件系统上的XML文件时,我将在Global.asax.cs中的Application_Start()函数中添加它
我将此添加到系统状态为:
protected void Application_Start(Object sender, EventArgs e)
{
string filePath = Server.MapPath("<path to my XML FILE>");
XmlDocument xmlDoc = new XmlDocument();
try
{
xmlTickerDoc.Load(filePath);
}
finally
{
HttpContext.Current.Application["xmlDoc"] = xmlDoc;
}
}
在这段代码中我尝试加载xml文件,如果由于任何问题没有加载文件,那么我想要一个空的XmlDocument。
我将此XmlDocument作为:
访问XmlDocument xmlDoc = new XmlDocument();
xmlDoc = HttpContext.Current.Application["xmlDoc"];
构建时遇到的错误
无法将类型'object'隐式转换为'System.Xml.XmlDocument'。存在显式转换
那么如何将HttpContext.Current.Application [“xmlDoc”]变量指定为System.Xml.XmlDocument?
答案 0 :(得分:2)
你的问题在这里:
xmlDoc = HttpContext.Current.Application["xmlDoc"];
尝试
xmlDoc = HttpContext.Current.Application["xmlDoc"] as System.Xml.XmlDocument;
答案 1 :(得分:0)
在谷歌搜索后得到了答案,这是一个简单的,但对于使用C#的PHP开发人员来说可能很棘手(就像我的情况一样) 好吧,我只需要将我的应用程序状态变量显式地转换为XmlDocument 这取代了:
XmlDocument xmlDoc = new XmlDocument();
xmlDoc = HttpContext.Current.Application["xmlDoc"];
我用过:
XmlDocument xmlDoc = new XmlDocument();
xmlDoc = (XmlDocument) HttpContext.Current.Application["xmlDoc"];
它变得健壮:)
任何人都可以告诉我这个ApplicationState变量的生命周期是什么?