2010-02-09 65 views
1

我使用Asp.net 3.5 C#如何將System.Xml.XmlDocument類型添加到和應用程序狀態

我有一個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?

回答

0

得到的答案有點谷歌搜索後,一個簡單的,但可能會非常棘手的PHP開發人員對C#的工作(因爲它是在我的情況) 以及我只是必須明確地投我的應用程序狀態變量爲XmlDocument 這是在的地方:

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

我用:

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

,並且變得強大:)

任何一個可以告訴我這將是該ApplicationState變量的生命週期?

+0

如果您有其他問題,請編輯您的問題/添加一個單獨的問題。不要把它作爲答案的一部分。 – 2010-02-09 08:14:34

1

你的問題是在這裏:

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

嘗試

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

阿罕謝謝,我剛剛發佈的答案如何,您能指導我使用哪種方法。我的意思是說這兩者之間有差別,都明確表示他們不? – 2010-02-09 07:42:13

+0

如果對象不能被轉換,則顯式轉換可能會引發異常。使用'as'將把對象設置爲null。因此,直接投射可能會稍微更高效,並幫助更快地捕捉錯誤。儘管如此,使用'as'看起來更易讀。 – 2010-02-09 08:03:28

相關問題