C#中內嵌資源的讀取


起因

作為一個從Cpper轉到C#並且直接從事WPF開發的萌新來說,正式編碼過程中碰到了不少問題,一路上磕磕碰碰的。因為軟件設計需求上的要求,需要將一些配置文件(XML、INI等)內嵌到程序中,等需要時進行讀取。找了不少資料,加上自己的連蒙帶猜,終於搞定了。在此,乘着還熱乎着趕緊記錄下。本人用的是Visual Studio 2015 英文版,其實都差不多的。

實現步驟

執行程序中加入內嵌文件步驟

  1. 在執行程序中找到 Resources.resx 並雙擊,會進入項目屬性的 Resources 選項卡中
  2. 在頂部的菜單項中,選擇 Add Resource 下拉菜單,根據自己的實際情況新建文件進行編輯或者是加入已經存在的文件。
  3. 在工程中找到剛才新增的文件,選擇 Properties ,找到 Build Action 屬性,將類型改為 Embedded Resource,然后保存。
  4. 至此文件已經加入到了運行程序內部了。為了方便起見,我這里假設我在 Config 目錄下添加了一個 Menus.xml 配置文件。

編碼讀取資源

System.Reflection.Assembly Asmb = System.Reflection.Assembly.GetExecutingAssembly();
string strName = Asmb.GetName().Name + ".Config.Menus.xml";
System.IO.Stream ManifestStream = Asmb.GetManifestResourceStream(strName);

byte[] StreamData = new byte[ManifestStream.Length];
ManifestStream.Read(StreamData, 0, (int)ManifestStream.Length);       

這樣,內嵌資源中的數據就被讀取到了StreamData中,后續可以按照自己的需求進行處理了。

在類庫動態庫中讀取內嵌文件步驟

類庫默認是不包含 Resources.resx 文件的,只需要在該類庫中添加一個 Resources.resx 文件,后續就可以跟執行程序一樣的處理了。

總結

目前還沒有用到純粹資源動態庫的方式,等以后用到了再來補充下這種用法的步驟。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM