Dzwebs.Net

撰写电脑技术杂文十余年

asp.net2.0网站各种文件扩展名、文件夹介绍中篇

Admin | 2009-2-24 18:59:07 | 被阅次数 | 7273

温馨提示!

如果未能解决您的问题,请点击搜索;登陆可复制文章,点击登陆

  接上篇…

  ④App_Data文件夹

  App_Data文件夹应该包含应用程序的本地数据存储。它通常以文件(诸如Microsoft Access或Microsoft SQL Server Express数据库、XML文件、文本文件以及应用程序支持的任何其他文件)形式包含数据存储。该文件夹内容不由ASP.NET处理。该文件夹是ASP.NET提供程序存储自身数据的默认位置。

  注意,默认ASP.NET帐户被授予对文件夹的完全访问权限。如果碰巧要改变ASP.NET帐户,一定要确保新帐户被授予对该文件夹的读/写访问权。

  ⑤App_GlobalResources文件夹

  正如其他应用程序一样,ASP.NET应用程序也可以使用资源,而且通常应该使用资源。资源是隔离应用程序用户界面的可局部 化部分的一种有效方法。一般而言,资源是与程序相关的不可执行的文本。典型的资源有图像、图标、文本和附属文件,但是任何可序列化的对象也可以被看作资 源。应用程序资源存储在应用程序的外部,这样就能在不影响和重新编译应用程序本身的情况下重新编译和替换它们。

  ASP.NET应用程序需要有一个主要程序集来保存应用程序默认的或中性的资源。此外,还要部署许多附属程序集,它们中各自 包含我们需要支持的某种文化的本地化资源。在ASP.NET 1.x中,编译一个程序集内的资源有点麻烦。需要手动地将基于XML的资源文件(那些带.res扩展名的资源)编译成.resources二进制文件。这 些文件既可以嵌入到一个.NET可执行文件中,也可以编译成附属程序集。使用资源文件生成器实用程序resgen.exe,将文本和基于XML的资源文件 转变为.resource文件。资源文件名称遵循baseName.cultureName.resource命名约定,其中baseName通常是应用 程序的名称:

  resgen.exe ProAspNet20.resx ProAspNet20.it.resources

  创建.resource文件以后,应当把它嵌入到一个程序集中,甚至可以作为一个资源容器来使用。要把一个资源文件嵌入到一个附属程序集中,可以使用程序集连接器工具(al.exe)。在命令行上,指出程序集所使用的文化(如下面示例中的it,它代表意大利)和名称。

  al /out:ProAspNet20.resources.dll /c:it /embed:ProAspNet20.it.resources

  在编译附属程序集之后,它们将有相同的名称。将它们部署到不同的子目录中,分别按文化命名。

  幸运的是,对于ASP.NET 2.0,附属程序集的时代已经一去不复返了。更准确地说,附属程序集仍然存在,但是由于App_GlobalResources保留文件夹,对开发人员来说它们已经成为过去的事情。

  该文件夹中的任何定位的.resx文件自动地被编译成附属程序 集。.resx文件的名称包含文化信息,以帮助ASP.NET运行库环境的程序集生成。如下文件,resources.resx, resources.it.resx, resources.fr.resx,生成中性程序集以及适合于意大利(Italian)和法国(French)文化的附属程序集。如果没有要求特定文 化,则中性程序集是默认的文化资源。

  App_GlobalResources文件夹中的资源文件是应用程序的全局资源,因而可以从任何页面中引用它。和ASP.NET 1.x相比资源读取结果也极大地简化了:

  <asp:Label Runat="server" Text="<%$ Resources:ResxFile, MyResName %>" />

  可以使用最新的称为Resources的$-表达式以声明的方式绑定全局资源(第5章将详细介绍$-表达式)。该表达式包括两个参数:.resx资源文件的名称(没有扩展名),以及要检索的资源的名称。以编程的方式访问资源,请使用如下代码:

  HttpContext.GetGlobalResourceObject(resxFile, MyResName)

  这两个参数都是字符串,并且与$-表达式中的参数具有相同的作用。此外,$-表达式Resources的实现在内部使用GetGlobalResourceObject。

  ⑥App_LocalResources文件夹

  App_LocalResources文件夹位于包含一些ASP.NET页面的文件夹下的一个子目录。该文件夹可以使用位于 目录结构中高一级目录中的页面命名的.resx文件进行填充。假定父文件夹包含test.aspx,则可以在App_LocalResources文件夹 中找到一些可用的资源文件如下:test.aspx.resx、test.aspx.it.resx和test.aspx.fr.resx。显然,上述文 件中存储的资源仅对test.aspx页面有影响,因而只能在链接的页面中看见它们(可以使用它们)。

  如何访问一个页面特有的资源呢?对于编程访问,可使用如下代码:

  HttpContext.GetLocalResourceObject("/ProAspNet20/ResPage.aspx","PageResource1.Title")

  第1个参数指出页面虚拟路径;第2个参数是资源名称。对于声明式访问,使用meta.:ResourceKey属性。例如,

  <asp:Button Runat="server" meta.:resourcekey="ButtonResource1" />

  该声明将一个惟一的资源键与特定按钮实例关联。局部文件.resx包含prefix.name形式的条目,其中prefix 是资源键,而name是绑定控件上的属性名。为了赋予按钮一个本地化标题(Text属性),只要在资源文件中创建一个 ButtonResource1.Text条目即可。

  局部和全局资源文件夹中存在的资源文件都被编译,以创建附属程序集的类。最后的结果是开发人员创建.resx文件,并测试该页面。而ASP.NET编译机制会完成其余工作。

  接下篇…


该杂文来自: 网站开发杂文

上一篇:asp.net2.0网站各种文件扩展名、文件夹介绍上篇

下一篇:asp.net2.0网站各种文件扩展名、文件夹介绍下篇

网站备案号:

网站备案号:滇ICP备11001339号-7

版权属性:

Copyright 2007-2021-forever Inc. all Rights Reserved.

联系方式:

Email:dzwebs@126.com QQ:83539231 访问统计