首页编程resx?resx 资源文件 如何使用

resx?resx 资源文件 如何使用

编程之家2023-11-0779次浏览

大家好,今天给各位分享resx的一些知识,其中也会对resx 资源文件 如何使用进行解释,文章篇幅可能偏长,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在就马上开始吧!

resx?resx 资源文件 如何使用

c# 如何读取resx内的图标

IO.Stream strm= GetType().Assembly.GetManifestResourceStream("namespace.picture.bmp");

img= new Bitmap(Image.FromStream(strm), width, height);

strm.Close();

如果是通过项目属性->资源嵌入,直接这样以用就可以了(假设资源名字叫MyBmp):

Bitmap myBmp= WindowsApplication1.Properties.Resources.MyBmp;

btnClose.Image=(Bitmap)Bitmap.FromStream(this.GetType().Assembly.GetManifestResourceStream("Buttom_Close.bmp"));

resx?resx 资源文件 如何使用

http://www.dotblogs.com.tw/puma/archive/2008/10/28/5813.aspx

前阵子看到的一个sample code有利用到Assembly的GetManifestResourceStream来载入图片资源

小弟用一个最简单的范例介绍如何使用呀..

首先在专案里先开一个Form表单..并且加入一个图片档...

并且将图片档→属性→建置动作→改成"内嵌资源",如下图所示:

01 using System;

resx?resx 资源文件 如何使用

02 using System.Collections.Generic;

03 using System.ComponentModel;

04 using System.Data;

05 using System.Drawing;

06 using System.Text;

07 using System.Windows.Forms;

08 using System.Reflection;//要记得using

09

10 namespace WindowsApplication1

11{

12 public partial class GetResourceStream: Form

13{

14 public GetResourceStream()

15{

16 InitializeComponent();

17}

18

19 private void GetResourceStream_Load(object sender, EventArgs e)

20{

21 Assembly asm= Assembly.GetExecutingAssembly();

22 string name= asm.GetName().Name;

23 Bitmap bmp= new Bitmap(asm.GetManifestResourceStream(name+".f6.jpg"));//载入图片资源

24 this.pictureBox1.Image= bmp;

25}

26}

27}

resx 资源文件 如何使用

博客园官网搜索关键字资源源文件使用

----------------------------------

.Net是一个丰富的平台,在它的结构中,程序集Assembly是自我描述的安装单元,它可以只包括一个PE(可移植可执行)格式的Dll或exe文件,也可以由多个文件组成,例如资源、Dll和exe等。其中,资源是的范围很广,它可由多种元素组成,包括与用户交互的界面元素(如位图、图标或光标)、应用程序所需数据的自定义文件以及安装 API使用的版本文件、菜单和对话框等都可以作为资源。为.Net程序集添加资源,就可实现资源重用等功能。使用Visual Studio.Net集成开发环境IDE很容易创建资源文件,把资源添加到工程中的方法和添加窗体、类库一样简单,只是你需要设置资源的“BuildAction”属性为“Embedded Resource”,这样你就可以使用这些资源

创建资源

字符串表是极常见的一种资源。要创建这类资源文件,有以下两种方式:

(1)使用.Net命令行工具ResGen创建。首先创建包含资源内容的文本文件,可使用(记事本、EditPlus等文本编辑器)。该文本文件由所需要的“键值对”组成,键的名称可以在程序中引用,设置键名后把字符串值赋予该键即可完成文件的创建。作为示例,以下语句段产生这样的资源,按下面的格式保存为userinfo.txt文件:

Username="Songh";

Sex="Boy";

Birthday="1973-01-15";

Salary="5000RMB";

然后,把文本文件转换为资源文件,这仍然通过ResGen工具来实现。执行以下语句:ResGen userinfo.txt,就将生成资源文件userinfo.resources。另外,ResGen还可以创建基于XML格式的.resX资源文件,执行以下命令ResGen userinfo.resources userinfo.resx就将生成Xml格式的资源userinfo.resx。不过,ResGen工具不支持图象资源的操作,下面的方法就不具有这样的限制。

(2)使用ResourceWriter类。为易于创建资源文件,.Net结构提供了ResourceWriter类以支持图象等各种资源类型的创建。ResourceWriter类包含的方法能以系统默认的格式将资源写入输出文件或输出流。与方法1)不同的是,这里统一在一个过程中完成。

要创建一个资源文件,请调用ResourceWriter类的构造函数初始化类实例并至少提供流名或文件名。资源的实际内容通过调用AddResource方法来完成,AddResource方法将资源指定为名称和值对。资源的实际写入需要调用Generate方法来实现,不过,在调用Close方法关闭该ResourceWriter时将隐式调用Generate方法。

ResourceWriter.AddResource()方法向要写入资源的列表中添加资源。在创建ResourceWriter类实例后,该方法可以添加至多2GB的资源,下面的重载方法之一用于向资源列表中添加string资源:

publicvoid AddResource(

string name,//键名

string value//值

);

在这里,AddResource方法的第一个参数指定键名称,第二个参数指定值。多次调用该方法就可以完成字符串表的创建。另外,添加图象资源可以通过实例化类Image来实现(这时,请添加System.Drawing名称空间)。

下面的代码段生成包含字符串表和图象的资源文件userinfo.resources。

View Code 1using System;

2

3using System.Resources;

4

5using System.Drawing;

6

7publicclass RS

8

9{

10

11publicstaticvoid Main()

12

13{

14

15 ResourceWriter rw=new

16

17 ResourceWriter("userinfo.resources");//提供文件名以初始化ResourceWriter类实例。

18

19 Image image=Image.FromFile("photo.gif");//实例化Image类

20

21 rw.AddResource("Photo",image);//添加图象

22

23 rw.AddResource("Username","songh");//添加字符串

24

25 rw.AddResource("Sex","boy");//添加字符串

26

27 rw.AddResource("Birthday","1973-01-15");//添加字符串

28

29 rw.AddResource("Salary","5000RMB");//添加字符串

30

31 rw.Close();//关闭ResourceWriter并隐式调用Generate()方法完成资源文件写入磁盘文件。

32

33}

34

35}

上面的代码首先打开图形文件photo.gif,创建一个Image对象。这样做时,这个图形文件必须存在于工程可执行文件的目录(通常是项目的\Bin\Debug目录)下,或者在Image.FromFile()的方法参数中指定图象的完整路径。然后,通过几次调用AddResouce()方法把字符串资源添加到ResourceWriter对象中。最后,调用Close()方法关闭ResourceWriter对象并隐式调用Generate()方法把资源写入文件userinfo.resources。

编译以上代码并运行就将创建资源文件userinfo.resources。

以上两种方式生成的资源文件均可以作为一个外部文件添加到程序集中,或者内嵌到Dll或exe中。下面继续说明如何在Windows应用程序使用资源文件。

使用资源文件

使用Visual Studio.Net集成开发环境IDE,可以把很容易把资源文件添加到程序集中。只需要在创建的工程中添加已经存在的资源文件,简单设置其属性就可将资源文件嵌入该程序集。下面通过一个C# Windows控制台实例来说明任何使用上面创建的userinfo.resources资源文件。

首先,创建C# Windows Console项目ResourceUserinfo,打开"项目\添加现有项",找到前面创建的资源文件Userinfo.resources添加到这个工程中;

然后,选择这个资源文件,将属性BuildAction(生成操作)设置为Embedded Resource(嵌入的资源),这样,资源文件就可以嵌入到输出的程序集中。

现在,你可以使用这个资源文件了。System.Resources名称空间中的ResourceManager类提供在运行时方便地访问特定资源的途径。具体地可以通过GetObject和GetString方法来实现,以键名为参数就将返回对应的值。

ResourceManager类的构造函数初始化ResourceManager类的新实例,其重载方法之一查找包含在一些文件中的资源,这些文件是使用给定的 Assembly从指定根名称导出的。

1public ResourceManager(

2

3string baseName,

4

5 Assembly assembly

6

7)

其中,参数baseName表示资源的根名称。根名称由应用程序名称空间和资源文件名(不带扩展名)组成。这样,该例中资源的根名称应该是:UserinfoResource.Userinfo,通过调用GetManifestResourceNames()方法也可编程获取该名称。

另一个参数assembly表示的是当前的主程序集,本例中的主程序集其实也是正在执行的程序集。获取正在执行程序集的一个简单方法是调用Assembly.GetExecutingAssembly()方法。

在获取ResourceManager实例后,通过指定键名,就可以获得对应的资源。

下表是程序中使用的部分控件:

类别 TextBox TextBox TextBox TextBox PictureBox

名称 username sex birthday salary photo

这些控件均可直接从工具箱拖放到设计器中。

完整的源代码为:

方法一:

using System.reflection;

using System.Resources;

private System.Resources.ResourceManager rm;

public Form1()

{

InitializeComponent();

Assembly assembly=Assembly.GetExecutingAssembly();//获取当前主程序集

Rm=new ResourceManager("ResourceUserinfo.Userinfo",assembly);//实例化资源管理类

photo.iamge=(Image)rm.GetObjetct("Photo");

username.Text=rm.GetString("Username");

sex.Text=rm.GetString("Sex");

birthday.Text=rm.GetString("Birthday");

salary.Text=rm.GetString("Salary");

}

方法二:

1 Assembly assm= this.GetType().Assembly;//Assembly.LoadFrom(程序集路径);

2foreach(string resName in assm.GetManifestResourceNames())

3{

4 Stream stream= assm.GetManifestResourceStream(resName);

5 ResourceReader rr= new ResourceReader(stream);

6 IDictionaryEnumerator enumerator= rr.GetEnumerator();

7while(enumerator.MoveNext())

8{

9 DictionaryEntry de=(DictionaryEntry)enumerator.Current;

10//de.Key是资源名

11//de.Value是资源内容

12}

13}

运行以上代码,便可取出资源文件内容。

aspx \resx是什么文件

资源文件,可以在里面嵌入静态资源,比如文本,图象等,生成应用程序或者DLL时,会附加生成到相应的文件里去,比如应用程序图标。你看到有一张表格,那个字符串资源列表,一个根据名称和值来索引的列表。是资源文件,用VS开发时自动维护的,资源文件就是在一个应用程序有多语言版本时提供支持的aspx是asp.net的页面文件aspx.cs是程序代码文件 aspx.resx是资源文件asp.net提倡页面与代码分离,把页面(也就是HTML方面的)放在aspx中,程序代码专门放在aspx.cs里,.cs指的是c#代码.

文章到此结束,希望我们对于resx的问题能够给您带来一些启发和解决方案。如果您需要更多信息或者有其他问题,请随时联系我们。

电信国际专线(电信卫星国际专线业务是什么)js代码下载(请问找到了js代码后应该如何下载)