GetManifestResourceStream讀取文件失敗的解決辦法

 這兩天在SliverLight項目中碰到一個問題:項目中有一個XML文件,需要使用XMLReader將內容讀取出來,使用如下代碼:

 

            Stream stream = this.GetType().Assembly.GetManifestResourceStream("SilverlightApplication2.XMLFile1.xml");
            HtmlPage.Window.Alert((stream == null).ToString());

但是,奇怪的是返回的Stream總是空。

 

開始懷疑是命名空間的問題,將SliverlightApplication1.命名空間去掉,問題依舊存在。換了幾種獲取Assembly方式,問題還在,不知道到底是什麼問題。

打開客戶端IE臨時文件的XAP包,解壓縮出來,這個XML文件是存在的,爲什麼還是空呢?

接着用Linq to XML的寫法來測試,

 

XElement ele = XElement.Load("XMLFile1.xml");
HtmlPage.Window.Alert((ele == null).ToString());

 

卻是能夠讀到的。真是見鬼了。

 

後來總算查到Build Action" property should be set to " Embedded Resourse"。所以設置這個XML文件的Buid Action 爲Embedded Resource。再試,問題就解決了。看來還是對GetManifestResourceStream這個方法以及程序集的理解不到位。

發佈了128 篇原創文章 · 獲贊 0 · 訪問量 21萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章