So fügen Sie dem Anwendungszustand ein System hinzu.xml.xmldocument Type
-
19-09-2019 - |
Frage
Ich verwende ASP.NET 3.5 und C#
Ich muss meinem Anwendungsstatus ein XMLDocument hinzufügen, damit jedes Mal, wenn meine Anwendung auf die XML -Datei in meinem Dateisystem zugreift, werde ich diese in der Funktion application_start () in global.asax.cs hinzufügen
Ich füge dies dem Systemstatus hinzu als:
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 diesem Code versuche ich, die XML -Datei zu laden, und wenn die Datei aufgrund eines Problems nicht geladen wird, möchte ich ein NULL XMLDOCUMEN.
Ich greife auf dieses xmldocument als:
XmlDocument xmlDoc = new XmlDocument();
xmlDoc = HttpContext.Current.Application["xmlDoc"];
Der Fehler, den ich während des Builds bekomme
Kann nicht implizit Typ 'Objekt' in 'System.xml.xmldocument' konvertieren. Es gibt eine explizite Konvertierung
Wie kann man die httpcontext.current.application ["xmldoc"] Variable as System.xml.xmldocument zuweisen?
Lösung 2
Ich habe die Antwort nach einem kleinen Googeln bekommen, ein einfaches, kann aber für einen PHP -Entwickler schwierig sein, der an C# arbeitet (wie es in meinem Fall war).
XmlDocument xmlDoc = new XmlDocument();
xmlDoc = HttpContext.Current.Application["xmlDoc"];
Ich benutzte :
XmlDocument xmlDoc = new XmlDocument();
xmlDoc = (XmlDocument) HttpContext.Current.Application["xmlDoc"];
Und es wird robust :)
Kann mir jemand sagen, was die Lebensdauer dieser Anwendungsvariablen sein wird?
Andere Tipps
Ihr Problem ist hier:
xmlDoc = HttpContext.Current.Application["xmlDoc"];
Versuchen
xmlDoc = HttpContext.Current.Application["xmlDoc"] as System.Xml.XmlDocument;