扩展ASP.NET 2.0资源提供程序模型(2)
API 访问本地和全局资源。资源提供程序为本地和全局资源类型而创建。
在示例代码中,DBResourceProviderFactory 为两个路径均创建了 DBResourceProvider。这是因为本地和全局资源通过同一方式访问。DBResourceProviderFactory 的代码显示在代码清单 2 中。 代码清单 2. DBResourceProviderFactory 是支持数据库资源的 ResourceProviderFactory 的自定义实现。
对于隐式表达式或调用本地资源的显式表达式,将调用 GetLocalResourceProvider() 来创建页面的提供程序。以下是隐式表达式和使用本地资源的显式表达式的示例 — 已在示例代码的 Expressions.aspx 页面中定义。
GetLocalResourceProvider() 使用一个单独的参数,该参数为包含应用程序目录的页面的虚拟路径。上面的两个表达式将传递“/LocalizedWebSite/Expressions.aspx”给此参数。从图 5 中,您可以看出本地资源使用代表页面相对路径的 resourceType 进行存储,其中不包含应用程序目录。这样,在创建 DBResourceProvider 示例之前,GetLocalResourceProvider() 会将应用程序目录从路径中去掉。 对于请求全局资源的显式表达式,会将在表达式中直接指定的资源类型传递至 GetGlobalResourceProvider()。请注意下面的显式表达式(同样来自代码示例中的 Expressions.aspx 页面)。
本例中的资源类型为 CommonTerms,因此调用 GetGlobalResourceProvider() 来将 CommonTerms 作为参数传递。为此类型创建了一个 DBResourceProvider 实例。 对于任何给定的资源类型,仅创建一个 DBResourceProvider 实例。实例创建之后会被缓存以备将来之用。因此,只有缓存中尚不存在提供程序实例时才会调用工厂。创建和缓存提供程序的过程封装在用于访问资源的本地化 API 中。 ResourceProviderFactory 配置 运行时将使用 ResxResourceProviderFactory,除非在配置中指定一个替代的 ResourceProviderFactory 类型。Web 配置文件的 <globalization> 部分有一个名为 resourceProviderFactoryType 的属性。此处,您指定了应使用 ResourceProviderFactory 类型。要配置 DBResourceProviderFactory,您要添加以下设置。
|
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |