自定义资源提供程序
自定义资源提供程序,

引言
.NET 提供了一种非常简单的方法,可以在 HTML 标记本身中为标签设置资源(如上所示),使用诸如 ResourceProviderFactory
和 IResourceProvider
之类的类。本文介绍了一个简单的示例,使用 ASP.NET 和 C# 实现此功能(附带的解决方案是在 Visual Studio 2008 中创建的)。
背景
还记得在 .NET 1.1 中,Resgen 工具是如何从简单的文本文件生成“.resources”文件,并将特定于文化的 .resources 文件加载到 ResourceManger
实例中吗?现在我们有了这种很棒的方法,可以从资源文件中读取特定于文化的资源,用于我们的多语言应用程序。这是通过类 ResourceProviderFactory
和接口 IResourceProvider
实现的。
Using the Code
![]() |
在解决方案中,我们有一个使用 在 Default.aspx 页面中,我们有一个下拉列表,用于选择不同的语言。选择不同的语言后, Web 客户端通过在 web.config 中指定全局化标签来了解 <globalization uiCulture="auto"
culture="auto" resourceProviderFactoryType=
" CustomeResourceProviders.
ExternalResourceProviderFactory,
CustomeResourceProviders,
Version=1.0.0.0 , Culture=neutral"/>
另一个需要注意的重要事项是重写的 您可以随时添加更多的资源文件,以支持您的多语言应用程序中的更多语言。使用这种读取资源的方式的优势在于,为了向 Web 应用程序添加新的语言支持,我们无需进行任何代码更改。我们所要做的就是添加一个具有适当的特定于文化的名称的资源文件,并将所有资源翻译成新的语言,然后就可以使用了。 |
关注点
我在执行此操作时遇到的一个问题是,当“CommonResources
”项目(在附带的解决方案中)中的资源文件名称为“Resources.resx”时,英语资源可以正常读取。但在更改语言时,无法读取特定于文化的资源,而是读取英语资源。我猜这可能与“Resources
”是关键字有关。 任何对此有更多信息的人,请发布评论。
历史
- 2009 年 3 月 5 日:初始发布