快速业务通道

扩展ASP.NET 2.0资源提供程序模型(2)

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-05-21
字段 说明

resourceType

每种资源的类别。可用其区分不同页面的本地资源,或根据用户定义的名称区分全局资源类型。

cultureCode

来自 .NET 所使用的受支持的 CultureInfo 代码中的区域性代码,基于 ISO 标准。还可以针对任何缺失代码来扩展该代码。

resourceKey

用于检索资源的资源键。

resourceValue

资源值。此表支持字符串多达 4K。

在本示例中,所有资源均存储在一个单独的表中,尽管在更复杂或更大规模的环境下为了优化典型的使用模式,可以将其分布于几个表之中。此表的主键是一个组合键,包括 resourceType、cultureCode 和 resourceKey。单个资源值通常使用主键请求。图 5 显示了表内容的部分视图。

扩展ASP.NET 2.0资源提供程序模型(2)

图 5. 此示例资源条目的部分视图

页面资源的 resourceType 是页面名称,包括其在应用程序中的相对路径(即 Expressions.aspx,SubDir1/Expressions.aspx)。此惯例会区分不同子目录中相同名称的页面,这与默认资源提供程序模型按子目录来识别不同的本地资源程序集的方式类似。控件属性的资源键遵循与典型的页面资源相同的命名惯例,即使用控件前缀和属性名称,语法如下。

[Prefix].[PropertyName]

全局资源具有用户定义的 resourceType。示例代码具有几种全局资源类别:Glossary、CommonTerms 和 Config。本例中的资源键很直观针对其内容进行命名。

数据访问层 StringResourcesDALC 将根据提供程序模型的使用模式来提取工作以从该表中检索资源。

扩展 ResourceProviderFactory

ResourceProviderFactory 类型是 ASP.NET 2.0 中资源访问的中心,负责根据请求的资源类型来返回全局或本地资源提供程序。ResourceProviderFactory 是一个抽象的基类型,需要以下两种方法的实现:CreateLocalResourceProvider() 和 CreateGlobalResourceProvider()。要创建自定义提供程序工厂,则需继承此基类型来提供这些方法的实现。两种方法必须返回实现 IResourceProvider 接口的资源提供程序的实例。

在代码清单 1 中显示了基本的 ResourceProviderFactory 类型声明。

代码清单 1. ResourceProviderFactory 抽象类型

public abstract class ResourceProviderFactory
{
 protected ResourceProviderFactory();
 public abstract IResourceProvider CreateGlobalResourceProvider(string classKey);
 public abstract IResourceProvider CreateLocalResourceProvider(string virtualPath);
}

ResourceProviderFactory 在编译时向页面解析步提供资源提供程序,在运行时则为本地化 API 调用提供资源提供程序。

• 页面解析器 — 在设计时解析页面并将其作为页面编译的预指针。在此过程中本地和全局资源的显式表达式有效。在编译期间,在编译页面中生成所有表达式的代码。在此过程中分析器使用资源提供程序。

• 运行时 — 在运行时,表达式不再具有编译页面中的含义。在编译期间生成的代码使用本地化

数据库资源条目

先来回顾一下要存储实际资源条目的数据库表结构或许对您有所帮助。示例包含一段 SQL 脚本,用于创建名为 CustomResourceProvidersSample 的数据库,还包含一个名为 StringResources 的表。表 1 包含以下字段:

表 1. 具有资源条目的数据库表

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号