利用.NET简化Web网站的维护工作

开发者在线 Builder.com.cn 更新时间:2006-04-12作者:Tony Patton 来源:

.NET框架为使用System.Resources命名空间里的资源提供各种类。一个典型的例子是ResourceManager类,用它可以访问到针对各种文化的资源。但是如果没有指定是哪种文化,它就会回到默认的文化。

我们的例子没有定义多文化,所以默认是使用基本应用程序DLL的资源。下面列表B里的代码用ResourceManager类来使用保存在资源文件里的数据:

using System.Resources;
namespace TRResources {
public class WebForm1 : System.Web.UI.Page {
private void Page_Load(object sender, System.EventArgs e) {
System.Reflection.Assembly a =
System.Reflection.Assembly.Load("TRResources");
ResourceManagerrm = new ResourceManager("TRResources.WebForm1",a);
Response.Write(rm.GetString("Greeting"));
}

列表C是相应的VB.NET代码:

Imports System.Resources
Public Class WebForm1
Inherits System.Web.UI.Page
Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs)
Handles MyBase.Load
Dim a As System.Reflection.Assembly
a = System.Reflection.Assembly.Load("WebApplication1")
Dim rm As ResourceManager
rm = New ResourceManager("WebApplication1.WebForm1", a)
Response.Write(rm.GetString("Greeting"))
End Sub
End Class

代码在运行的时候会从特定的资源文件里检索数据——在本文中,就是与Web窗体相关联的资源文件。来自数据元素的文本被显示在Web页面上。这个例子非常简单,但是它表明了资源文件有很强的灵活性。你可以很容易就保存所有的用户界面文本(至少文本是相对静止的),包括工具栏的标签、标题、版权信息等等。

如前所述,你也可以向项目添加新的资源文件。要使用保存在新添加的资源文件里的数据,你就要用资源文件的名字,就像前面列表里使用TRResource.WebForm1那样。下面几行代码使用了一个叫做Example的资源:

ResourceManagerrm = new ResourceManager("NamespaceName.Example", a);

Here's the equivalent VB.NET code:

Dim rm As ResourceManager
rm = New ResourceManager("NamespaceName.Example", a)

尽管本文把注意力放在ASP.NET上,但是你可以对Windows Forms应用程序使用同样的方式。一个大的不同之处是在VB.NET里Windows的应用程序在默认情况下不带有资源文件,所以你必须向项目添加资源文件。

应用程序的交付

如果你正在开发只使用一种语言的应用程序,那么将它推给Web服务器与其它任何项目都没有差别。但是,如果你在通过资源文件提供本地化的文档,你就必须按照特定的方式来确保.NET能够找到特定文化/语言所需要的资源。这不是本文讨论的范围,但是MSDN在其Library Entry里提供大量的信息。

更多选择

在需要更改基本的网站文档的情况下,资源文件十分好用,能够节省大量的时间。你可能认为直接编辑ASP.NET页面上的文档也很容易,但是一个资源文件里保存的文字可能涉及多个页面。资源文件最佳的应用是提供多语言版本的网站。

Tony Patton的职业生涯开始于应用程序开发员,并已经获得了JavaVBLotusXML的认证,以证明其专业知识水平。

责任编辑:张琎

查看本文的国际来源

dotnettrend webtrend xml TonyPatton相关资讯

用户评论

  • 用户名
  • 评论内容