1

我正在使用 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 ?

4

2 回答 2

2

你的问题在这里:

xmlDoc = HttpContext.Current.Application["xmlDoc"];

尝试

xmlDoc = HttpContext.Current.Application["xmlDoc"] as System.Xml.XmlDocument; 
于 2010-02-09T07:30:53.233 回答
0

经过一番谷歌搜索后得到了答案,这是一个简单的答案,但对于在 C# 上工作的 PHP 开发人员来说可能会很棘手(就像我的情况一样),我只需要显式地将我的应用程序状态变量转换为 XmlDocument,它位于:

XmlDocument xmlDoc = new XmlDocument();
xmlDoc = HttpContext.Current.Application["xmlDoc"];

我用了 :

XmlDocument xmlDoc = new XmlDocument();
xmlDoc = (XmlDocument) HttpContext.Current.Application["xmlDoc"];

它变得健壮:)

谁能告诉我这个 ApplicationState 变量的生命周期是多少?

于 2010-02-09T07:40:10.540 回答