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

发布于 2024-08-20 17:37:46 字数 916 浏览 9 评论 0原文

我正在使用 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"];

构建时遇到的错误是

无法将类型“对象”隐式转换为“System.Xml.XmlDocument”。存在显式转换

那么如何将 HttpContext.Current.Application["xmlDoc"] 变量分配为 System.Xml.XmlDocument ?

I am using Asp.net 3.5 and C#

I have to add an XmlDocument to my application state so that everytime my application doesnt access the XML file on my filesystem, I will add this at the Application_Start() function in Global.asax.cs

I am adding this to system state as :

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;
    }
}

In this code i try to load the xml file and if the file is not loaded due to any problem then i am wanting a null XmlDocument.

I access this XmlDocument as :

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

the error i get while build is

Cannot implicitly convert type 'object' to 'System.Xml.XmlDocument'. An explicit conversion exists

So How to assign the HttpContext.Current.Application["xmlDoc"] variable as System.Xml.XmlDocument ?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

路还长,别太狂 2024-08-27 17:37:46

你的问题在这里:

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

尝试

xmlDoc = HttpContext.Current.Application["xmlDoc"] as System.Xml.XmlDocument; 

Your problem is here:

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

Try

xmlDoc = HttpContext.Current.Application["xmlDoc"] as System.Xml.XmlDocument; 
煞人兵器 2024-08-27 17:37:46

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

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

我使用 :

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

的地方,它变得健壮:)

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

Got the answer after a little googling, a simple one but can be tricky for a PHP developer working on C# (as it was in my case)
well i just had to explicitly cast my application state variable to XmlDocument
that is at place of :

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

I used :

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

and it becomes Robust :)

can any one tell me what will be the lifetime of this ApplicationState Variable ?

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文