打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
从资源文件里加载文件或读取资源(C#)

从资源文件里加载文件(C#

 

用途:

1.       在进行多国语言化的时候.( 通常把不同翻译的文字存放到资源包里.)

2.       将图片打包进DLL的时候(icon等,自定义控件..)

 

资源文件格式: .resx||.resources

打包资源文件:

  System.Resources.ResourceWriter rw = new ResourceWriter(@"../../abc.resources");

     rw.AddResource("abc", new byte[10000000]);

     rw.Generate();

     rw.Close();

说明:

创建一个ResourceWriter的对象用于写资源文件。文件的后缀名必须是.resources,不让其它的系统无法识别。然后是通过AddResource的方法写资源信息,这个信息可以是一个字符串,也可以是一个byte数组,甚至可以是一个对象(image)。添加好以后就是Generateclose了。这样运行程序后,资源文件就制作完成了。

如果不需要把这个资源文件打包到exe程序或者dll程序里面,可以使用System.Resources.ResourceReader读取资源文件信息。

 

获取资源文件

资源文件打包好以后,下一步是把资源文件集成到项目里。方法有两个,一个是用控制台的方式编译项目,通过加载资源文件的方式把资源加载到exe里,另外一个简单很多,就是把直接把资源文件加载到工程里,vs会根据后缀名识别出来加载的文件属于资源文件,在进行编译的时候会自动把这个文件打包到资源文件里。如果编译后发现资源文件没有加到exe文件,可以设置资源文件的属性,把Build Action的属性设置为Embedded Resource

 

在当前项目中读取资源:

this.Icon = Properties.Resources.exeIcon;||

this.Text = Resource1.String1.ToString();//主要是字符串

 

资源文件成功加到exe文件后,下一步就是在程序里读取资源文件。

System.Resources.ResourceManager rm = new System.Resources.ResourceManager("Resunce.abc", this.GetType().Assembly);

byte[] bit = rm.GetObject("abc") as byte[];

  

说明:

通常是创建一个ResourceManager的对象,第一个参数是资源的名字,这里要注意的是“Resunce”是编译的时候,组件(命名空间)名字,“abc”是资源文件的名字。如果前面不是通过VS的工程文件进行编译,而是通过控制台方式直接编译,那么资源的名字不需要带组件的名字,只是“abc”就可以了。原因吗,我估计可能是vs在进行编译的时候,带了某些参数(确定了组件名),所以在项目读取资源文件的时候需要带组件名。

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
.NET系统学习----Globalization & Resources
C#资源文件的使用方法
.NET的资源并不限于.resx文件,你可以采用任意存储形式[上篇]
鸿蒙HarmonyOS应用开发之资源文件【鸿蒙开发17】
android 读取Resources 和 Assets 中的文件
ASP.NET 中使用资源文件 - 林子之大.net笔记 - 博客园
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服