C#中内嵌资源的读取

原由

做为一个从Cpper转到C#而且直接从事WPF开发的萌新来讲,正式编码过程当中碰到了很多问题,一路上磕磕碰碰的。由于软件设计需求上的要求,须要将一些配置文件(XML、INI等)内嵌到程序中,等须要时进行读取。找了很多资料,加上本身的连蒙带猜,终于搞定了。在此,乘着还热乎着赶忙记录下。本人用的是Visual Studio 2015 英文版,其实都差很少的。ui

实现步骤

执行程序中加入内嵌文件步骤

  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 文件,后续就能够跟执行程序同样的处理了。code

总结

目前尚未用到纯粹资源动态库的方式,等之后用到了再来补充下这种用法的步骤。xml

相关文章
相关标签/搜索