.NET 资源文件resx、Resources详细说明
程序员文章站
2024-03-07 21:11:03
资源文件简介 (1)resx文件: 基于文本的格式是特定于.net 框架的 xml 格式,称为 resx(.resx 文件)。不考虑其 xml 基础,该格式不是专门为人工阅...
资源文件简介
(1)resx文件:
基于文本的格式是特定于.net 框架的 xml 格式,称为 resx(.resx 文件)。不考虑其 xml 基础,该格式不是专门为人工阅读而设计的(xml 格式很少是这样的)。但是,visual studio .net 仍然为 .resx 文件提供了一个基本编辑器。
(2)resources文件:
.resources 扩展名来自于在将 .resx 文件作为资源嵌入之前 visual studio .net 处理该文件时所使用的工具。工具名称是 resgen.exe,它用来将 .resx xml 格式“编译”为二进制格式。可以手动将 .resx 文件编译成 .resources 文件,如下所示:
c:\> resgen.exe resource1.resx
在将 .resx 文件编译成 .resources 文件以后,就可以使用 system.resources 命名空间中的 resourcereader 来枚举它:
二、 资源文件应用简介
(1)在windows application中的使用:
1.首先注意的是,在windows application中的resx资源文件是和其中的form相关联的,及form.cs与form.designer.cs和form.resx文件是作为一个整体进行展示的(在资源管理器中),这里不涉及本地与全局资源文件夹的概念,及如果想导入已经生成的resources文件的话,直接在工程上右键add new item即可,选择完相关的resources文件,记住要将资源文件的属性中的build action选择为embadded resource(内嵌资源),这样的话,资源就会在你编译后直接嵌入到你的应用程序当中。
2.具体应用代码示例:
assembly assembly = assembly.getexecutingassembly();
resourcemanager rm = new resourcemanager("teststrongname123.form1", assembly);
this.textbox1.text = rm.getstring("first");
3.resources文件与resx文件的区别,也可以从他们对资源的保存形式来判断,前者会将所有的资源都保存到该文件中,而后者只是会保存对资源的引用
在asp.net web application中的使用:
1.在此处应用资源文件的时候可能与前面的使用方法略有不同,而且在vs2005中引入了新的使用方式,即资源文件夹的概念,即把全局资源与本地资源分别保存到app_globalresources和app_localresources目录中,只要放到这两个目录中的资源文件,可以再根据自己的分类继续进行文件划分,这个不影响工程找到资源文件,这里还要对资源文件的命名简单介绍一下,全局资源只要保证其文件为resx文件即可,名字自己可以随意,而后者的命名必须遵循一定的命名规则才可以,即:对应的页面文件名 + “.resx”。
2.具体应用代码示例:
<1> 应用本地资源(字符串):
<asp:literal id="literal1" runat="server" text="<%$resources:localstring1%>"></asp:literal>
literal2.text = (string)this.getlocalresourceobject("localstring2");
<2> 应用全局资源(字符串):
<asp:literal id="literal3" runat="server" text="<%$resources:globalresource, globalstring1%>"></asp:literal>
literal4.text = (string)base.getglobalresourceobject("globalresource", "globalstring2");
<3> 获取全局资源中的图片:
bitmap bm = null;
bm = resources.globalresource.globalsmallfail;
3.其他一点说明:使用web site站点的时候,与这里的应用也是类似的,这里就不赘述了。
4.针对公文系统来说,资源文件的使用比较局限,因为我们的公文系统采用的策略为使用客户端控件,避免使用服务器端控件;再者,我们都饿应用无法提前欲知情况(也就是全球化的资源思路),所以,鉴于此,我们系统中应用资源文件的使用只能局限到对字符串等的使用,但是在图片等方面可能无法达到我们的需求,使用图片替换仍旧为我们的首选方案。
(1)resx文件:
基于文本的格式是特定于.net 框架的 xml 格式,称为 resx(.resx 文件)。不考虑其 xml 基础,该格式不是专门为人工阅读而设计的(xml 格式很少是这样的)。但是,visual studio .net 仍然为 .resx 文件提供了一个基本编辑器。
(2)resources文件:
.resources 扩展名来自于在将 .resx 文件作为资源嵌入之前 visual studio .net 处理该文件时所使用的工具。工具名称是 resgen.exe,它用来将 .resx xml 格式“编译”为二进制格式。可以手动将 .resx 文件编译成 .resources 文件,如下所示:
c:\> resgen.exe resource1.resx
在将 .resx 文件编译成 .resources 文件以后,就可以使用 system.resources 命名空间中的 resourcereader 来枚举它:
二、 资源文件应用简介
(1)在windows application中的使用:
1.首先注意的是,在windows application中的resx资源文件是和其中的form相关联的,及form.cs与form.designer.cs和form.resx文件是作为一个整体进行展示的(在资源管理器中),这里不涉及本地与全局资源文件夹的概念,及如果想导入已经生成的resources文件的话,直接在工程上右键add new item即可,选择完相关的resources文件,记住要将资源文件的属性中的build action选择为embadded resource(内嵌资源),这样的话,资源就会在你编译后直接嵌入到你的应用程序当中。
2.具体应用代码示例:
复制代码 代码如下:
assembly assembly = assembly.getexecutingassembly();
resourcemanager rm = new resourcemanager("teststrongname123.form1", assembly);
this.textbox1.text = rm.getstring("first");
3.resources文件与resx文件的区别,也可以从他们对资源的保存形式来判断,前者会将所有的资源都保存到该文件中,而后者只是会保存对资源的引用
在asp.net web application中的使用:
1.在此处应用资源文件的时候可能与前面的使用方法略有不同,而且在vs2005中引入了新的使用方式,即资源文件夹的概念,即把全局资源与本地资源分别保存到app_globalresources和app_localresources目录中,只要放到这两个目录中的资源文件,可以再根据自己的分类继续进行文件划分,这个不影响工程找到资源文件,这里还要对资源文件的命名简单介绍一下,全局资源只要保证其文件为resx文件即可,名字自己可以随意,而后者的命名必须遵循一定的命名规则才可以,即:对应的页面文件名 + “.resx”。
2.具体应用代码示例:
<1> 应用本地资源(字符串):
<asp:literal id="literal1" runat="server" text="<%$resources:localstring1%>"></asp:literal>
literal2.text = (string)this.getlocalresourceobject("localstring2");
<2> 应用全局资源(字符串):
<asp:literal id="literal3" runat="server" text="<%$resources:globalresource, globalstring1%>"></asp:literal>
literal4.text = (string)base.getglobalresourceobject("globalresource", "globalstring2");
<3> 获取全局资源中的图片:
bitmap bm = null;
bm = resources.globalresource.globalsmallfail;
3.其他一点说明:使用web site站点的时候,与这里的应用也是类似的,这里就不赘述了。
4.针对公文系统来说,资源文件的使用比较局限,因为我们的公文系统采用的策略为使用客户端控件,避免使用服务器端控件;再者,我们都饿应用无法提前欲知情况(也就是全球化的资源思路),所以,鉴于此,我们系统中应用资源文件的使用只能局限到对字符串等的使用,但是在图片等方面可能无法达到我们的需求,使用图片替换仍旧为我们的首选方案。
上一篇: Java 垃圾回收机制详解及实例代码
下一篇: Java I/O 操作及优化详细介绍