質問

私は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; 
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top