.resx 资源文件


resx资源文件可以应用在win form和web form的开发中,我们这里只介绍其在webform中的应用。

在vs2005中,我们可以建立两种类型的资源文件:全局资源文件和本地资源文件,全局资源文件保存在App_GlobalResources目录中,而本地资源文件保存在App_LocalResources目录中。
这两种类型的资源文件的区别于:全局资源文件可以在任意页面中调用,而本地资源文件只能供其对应的页面文件来调用。所以全局资源文件resx文件名称可以随意命名,而本地资源文件resx的文件名必需与对应的页面文件名相同。由于本地资源文件需要与调用它的页面文件名称相同,App_LocalResources文件夹应当与调用它的页面处于一个目录下。

以下举例说明:

我在系统根目录下分别建立App_GlobalResources和App_LocalResources这两个asp.net文件夹如下图1所示:

全局资源调用比较简单,我们首先建立全局资源文件:右键单击App_GlobalResources文件夹,在弹出的菜单中单击“添加新项”选项,在弹出的窗口中选择资源文件,名称可以随意写,我这里命名的是qcd.resx。(这里的命名关系到程序里的调用)。
在资源文件里,我们可以建立相应的字符吕、图片、文件、图标等资源,这里以出字符串为例进行说明。
双击打开资源文件,默认就是针对字符串资源的操作,我们现在建立一个名称为qcdcms的字符串资源,它的值为cn-web.com,如下图2所示:

OK,建好资源文件后,我们下面看下程序中的调用方法:

Response.Write((string)base.GetGlobalResourceObject("qcd", "qcdcms"));//调用全局资源qcd.resx里的字符串qcdcms的值。同理 ,调用图片、文件等资源这里不在赘述。

下面我们再来看下本地资源文件的使用。
与建立全局资源文件类似,不同的时我们右键单击的是App_LocalResources文件夹,对资源文件名称时,我们要看这个本地资源文件是为哪个页面服务的,我们就按这个页面的名称为其命名。

举例:
我的系统根目录下有一个名称为main.aspx的页面,那么我在根目录下的App_LocalResources文件夹下建立一个名称为main.aspx.resx的资源文件,同样,在这个资源文件里建立一个名称为qcdcms的字符串资源,它的值为cn-web.com。在main.aspx页面里,我们可以通过以下代码进行调用:Response.Write((string)this.GetLocalResourceObject("qcdcms"));

要说明的是,如果在系统中其它目录下也有main.aspx页面时,我们如果建立这个页面的资源,就需要在这个main.aspx页面所属目录下建立App_LocalResources本地资源文件夹。

如下图3所示:

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

通过.aspx页面代码,调用资源文件:

<asp:Literal runat="server" Text="配送方式名称:" meta:resourcekey="lblShipTypeNameResource" /></label>

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

有人可能要问:如果我的资源文件能不能随意放到某个文件夹下,而脱离App_LocalResources或者App_LocalResources文件夹呢?答案是肯定可以的。在下一文章中,我们将讲到使用.net中的ResXResourceReader类来自定义处理资源文件。

关于全局资源与本地资源的使用今天就讲到这里,资源文件在实际项目中的作用还是比较大的,方便我们对系统中需要变化的字符串变量、图片资源、文件资源等的维护,程序代码不关系图片的地址、文件的地址、这个按钮叫什么名字,全部交给资源文件去维护吧。

原文地址:https://www.cnblogs.com/lingyuan/p/1929596.html