起因

作为一个从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 文件,后续就可以跟执行程序一样的处理了。

总结

目前还没有用到纯粹资源动态库的方式,等以后用到了再来补充下这种用法的步骤。

C#中内嵌资源的读取的更多相关文章

  1. ABP官方文档翻译 6.5 内嵌资源文件

    内嵌资源文件 介绍 创建内嵌文件 xproj/project.json形式 csproj形式 添加内嵌资源管理器 使用内嵌视图 使用内嵌资源 ASP.NET Core 配置 忽略文件 重写内嵌文件 介 ...

  2. spring 5.x 系列第20篇 ——spring简单邮件、附件邮件、内嵌资源邮件、模板邮件发送 (代码配置方式)

    源码Gitub地址:https://github.com/heibaiying/spring-samples-for-all 一.说明 1.1 项目结构说明 邮件发送配置类为com.heibaiyin ...

  3. spring 5.x 系列第19篇 ——spring简单邮件、附件邮件、内嵌资源邮件、模板邮件发送 (xml配置方式)

    源码Gitub地址:https://github.com/heibaiying/spring-samples-for-all 一.说明 1.1 项目结构说明 邮件发送配置文件为springApplic ...

  4. [VSTO] 区分MAILITEM的ATTACHMENT是真正的附件还是内嵌资源

    在遍历MailItem的Attachments集合的时候发现,不管是真正的附件还是内嵌资源,比如邮件内容中内嵌的图片(Embedded Image),都是Attachments集合的元素,通过查看at ...

  5. 【转】WebResource实现在自定义控件中内嵌JS文件

    在类库中的资源  其他项目中要使用 需要嵌入才行 参考文献:WebResource实现在自定义控件中内嵌JS文件 1. WebResource简介 ASP.NET(1.0/1.1)给我们提供了一个开发 ...

  6. APP中内嵌H5页面为什么不能下载?

    在APP中内嵌H5页面,若页面上存在下载链接,没有任何反应,为什么呢? 原因是app中内嵌的H5页面是WebView解析的,什么是WebView呢? 在Android手机中内置了一款高性能webkit ...

  7. Unity中内嵌网页插件UniWebView

    一.常见Unity中内嵌网页实现方式: 1.UnityWebCore只支持windows 2.Unity-Webview支持Android,IOS 3.UniWebView支持mac os,Andro ...

  8. Winform/WPF中内嵌BeetleX的HTTP服务

    在新版本的BeetleX.FastHttpApi加入了对netstandard2.0支持,如果程序基于.NetFramework4.6.1来构建WinForm或WPF桌面程序的情况下可以直接把Beet ...

  9. GCC在C语言中内嵌汇编 asm __volatile__ 【转】

    转自:http://blog.csdn.net/pbymw8iwm/article/details/8227839 在内嵌汇编中,可以将C语言表达式指定为汇编指令的操作数,而且不用去管如何将C语言表达 ...

随机推荐

  1. SSL证书安装指引

    https://cloud.tencent.com/document/product/400/4143 下载得到的 www.domain.com.zip 文件,解压获得3个文件夹,分别是Apache. ...

  2. CSS用HTML中的style属性替换

    废话不多说上代码: 1.用CSS给文字添加背景色: <html> <head> <style type="text/css"> body {ba ...

  3. NSMutableArray 记住取不到时要进行强转

    NSMutableArray  记住取不到时要进行强转

  4. 从(0,0)到(m,n),每次走一步,只能向上或者向右走,有多少种路径走到(m,n)

    body, table{font-family: 微软雅黑; font-size: 10pt} table{border-collapse: collapse; border: solid gray; ...

  5. np.array转换为list,嵌套的python list转成一个一维的python list

    np.array转换为list 1 meitan = shuju.iloc[start:end, 1:2] zhengqi = shuju.iloc[start:end,2:3] print(type ...

  6. JavaScript事件高级绑定

    js 进行事件绑定,其中一种不常见的写法是: <div id="father" style="width: 300px; height: 200px; backgr ...

  7. 解决IE中placeholder的兼容问题

    定义和用法 placeholder 属性提供可描述输入字段预期值的提示信息(hint). 该提示会在输入字段为空时显示,并会在字段获得焦点时消失. 注释:placeholder 属性适用于以下的 &l ...

  8. 童攀TP5企业网站实战笔记

    $this->assign('data',$data) ---恢复内容开始--- return view();   载入视图 {include file='public/head'} 包含文件 ...

  9. Linux三剑客之awk最佳实践

    笔者Q:972581034 交流群:605799367.有任何疑问可与笔者或加群交流 知识点: 记录与字段 模式匹配:模式与动作 基本的awk执行过程 awk常用内置变量(预定义变量) awk数组 a ...

  10. bzoj 4562 [Haoi2016]食物链

    4562: [Haoi2016]食物链 Time Limit: 10 Sec  Memory Limit: 128 MB Description 如图所示为某生态系统的食物网示意图,据图回答第1小题 ...