如何将System.Xml.XmlDocument类型添加到应用程序状态

时间:2010-02-09 07:25:13

标签: c# asp.net xml xmldocument application-state

我使用的是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?

2 个答案:

答案 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变量的生命周期是什么?