system.xml.xmldocumentタイプをアプリケーションに追加する方法
-
19-09-2019 - |
質問
私は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ファイルをロードしようとしますが、問題のためにファイルがロードされていない場合は、null xmldocumentが必要です。
このxmldocumentにアクセスしてください。
XmlDocument xmlDoc = new XmlDocument();
xmlDoc = HttpContext.Current.Application["xmlDoc"];
ビルド中に得られるエラーはそうです
「オブジェクト」を「system.xml.xmldocument」に暗黙的に変換することはできません。明示的な変換が存在します
では、httpcontext.current.application ["xmldoc"] variableをsystem.xml.xmldocumentとして割り当てる方法?
解決 2
ちょっとしたグーグルの後に答えを得ましたが、C#に取り組んでいるPHP開発者にとっては簡単ですが(私の場合はそうでした)、私は次の場所にあるXmldocumentにアプリケーション状態変数を明示的にキャストする必要がありました。
XmlDocument xmlDoc = new XmlDocument();
xmlDoc = HttpContext.Current.Application["xmlDoc"];
私は使用しました:
XmlDocument xmlDoc = new XmlDocument();
xmlDoc = (XmlDocument) HttpContext.Current.Application["xmlDoc"];
そしてそれは堅牢になります:)
このApplicationState変数の寿命はどうなるか教えてもらえますか?
他のヒント
あなたの問題はここにあります:
xmlDoc = HttpContext.Current.Application["xmlDoc"];
試す
xmlDoc = HttpContext.Current.Application["xmlDoc"] as System.Xml.XmlDocument;
所属していません StackOverflow