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

数据库资源条目

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

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

字段 说明

resourceType


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


cultureCode


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


resourceKey


用于检索资源的资源键。


resourceValue


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

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

图 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);
}

时间: 2016-12-06

扩展ASP.NET 2.0资源提供程序模型(2)的相关文章

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

摘要: Microsoft ASP.NET 2.0 在本地化 Web 应用程序方面进行了许多奇妙的改进.即使有了所有这些奇妙的优点,但在本地化站点后不久,您可能还会开始考虑扩展性.本文将帮助您应用 ASP.NET 的扩展功能处理企业本地化方案并改进本地化开发过程. 简介 ASP.NET 2.0 在本地化 Web 应用程序方面进行了许多奇妙的改进.我曾在 MSDN 文章"ASP.NET 2.0 Localization Features: A Fresh Approach to Localizin

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

在此例中,新前缀为"ExternalResource".此新表达式的所需语法如下所示. <%$ ExternalResource: [assemblyName]|[resourceType], [resourceKey] %> 此表达式将使用先前介绍的同一 GlobalExternalResourceProvider 从特定程序集提取资源.为支持这一新表达式,我们将创建一个自定义类型 ExternalResourceExpressionBuilder.表 2 总结了由每个替

理解并扩展 ASP.NET 2.0 中的站点导航系统

asp.net|导航|站点 摘要:ASP.NET 2.0 站点导航系统构建于一个功能强大.灵活的体系结构之上,设计这样的体系结构是为了使其具有可扩展性.本文探究站点提供程序的体系结构并提供一个示例提供程序,该提供程序将文件系统公开为站点导航的数据源,从而替代了标准的 Web.sitemap XML 文件. 简介 大多数 web 站点采用可视化导航的某种形式来帮助用户轻松地浏览站点,以及查找他们所需的信息和 Web 页.尽管不同站点之间的感观效果千差万别,但是通常会使用相同的基本元素 - 以导航栏

ASP.net 2.0下应用程序离线信息

asp.net|程序 ASP.net 2.0 有一个新特性,就是支持应用程序离线信息. 什么是离线信息呢?以前我们在更新应用程序,导至asp.net应用程序重启,应用程序的用户通常会显示不友好的错误信息,或者IE一直显示加载状态. ASP.net 2.0支持您在应用程序根目录下放置一个app_offline.htm文件,用户请求时,系统会检查是否有这个文件存在,如果有,系统会将app_offline.htm文件的内容直接返回给用户. app_offline.htm的内容可以更改成任何您需要的内容

体验ASP.NET 2.0 中的数据访问控件

asp.net|访问|控件|数据 简介 数据访问一直是开发 Web 应用程序的一个关键问题.几乎每个商业应用程序都需要数据驱动的 Web 页面.由于数据访问如此普遍,开发人员不断地为简单的数据库任务重新生成复杂的代码就显得毫无意义了.开发人员需要从格式各异的不同数据源中快速访问数据.幸运的是,ASP.NET 2.0 中新增的数据访问控件和 ADO.NET 2.0 解决了这一问题. 对于传统的 ASP 和 ASP.NET 1.1 应用程序而言,开发人员不得不创建代码访问和更新数据库,将检索到的数据

ASP.NET 2.0: 使用自定义的配置文件提供程序管理Web用户

本文讨论: ASP.NET 2.0 配置文件提供程序 构建一个自定义提供程序 身份验证 和授权 本文使用了以下技术: ASP.NET, XML 借助 ASP.NET 2.0,您无需编写代码即 可向自己的网站添加身份验证.授权和各种配置文件.与以往相比,这显然是一个巨大的进步.与 ASP.NET 2.0 中的多数新功能一样,身份验证.授权和配置文件都有自己的内置提供程序.您可以将提供 程序看作是包含有完成某项特殊任务所用方法的模块.这些提供程序非常灵活,您可以通过指定属性对其 进行自定义.这些指定

ASP.NET 2.0轻松实现数据库应用开发

asp.net|数据|数据库 前言: 第一次使用ASP.NET 2.0就被它强大的功能和超高的效率所吸引,原本繁杂的过程被简化到无法置信的容易,而且据微软的所言12月中文版的VS2005正式版将给我们带来更强劲的风暴.对ASP.NET 2.0逐渐深入后,便产生了想把自己学习中发现的问题和体会与大家交流,遂有此文.声明:本文所有演示示例均基于Visual Web Developer 2005 Express Beta2,Visual Web Developer 2005 Express Editi

在ASP.NET 2.0中实现数据的绑定

ASP.NET的第一个版本就已经建立了一组新的数据库绑定控件.有了这些控件 的支持,数据的可视化和编辑就简单多了,其中一个最重要的控件就是DataGrid 控件.但是这个控件也有很多缺点.它为数据的排序,分页和编辑提供了一些内 置的功能,但必须手动实现. 而ASP.NET 2.0中采用了一种新的方式来解决以前版本的诸多问题, 并且提供了标准的功能.现在可以对任何数据源进行排序,分页和编辑----在大 多数情况下不需要输入任何代码.由于几乎所有的动态WEB程序都要考虑到与数据库的交互,幸运的是在A

轻松加密ASP.NET 2.0 Web程序配置信息

asp.net|web|程序|加密 一. 简介 当创建ASP.NET 2.0应用程序时,开发者通常都把敏感的配置信息存储在Web.config文件中.最典型的示例就是数据库连接字符串,但是包括在Web.config文件中的其它敏感信息还包括SMTP服务器连接信息和用户凭证数据,等等.尽管默认情况下可以配置ASP.NET以拒绝所有对扩展名为.config的文件资源的HTTP请求:但是,如果一个黑客能够存取你的web服务器的文件系统的话,那么,Web.config中的敏感信息仍然能够被窃取.例如,也