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ファイルをロードしようとしましたが、問題が原因でファイルがロードされない場合は、nullの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 に答える