asp.Net   发布时间:2022-04-07  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了asp.net从指定文化获取.resx的所有资源(ResourceManager.GetResourceSet)大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我首先在堆栈溢出时遇到了类似于我的问题: Loop through all Resources in ResourceManager – C#.它只解决了我需要做的部分工作.当您在特定文化的资源文件中请求条目时,如果没有存在,它将默认返回中性文化资源文件.

我需要遍历给定资源文件的每个条目,而GetresourceSet需要一个文化.例如,我有一个中性资源文件,其中包含3个条目,以及一个文化特定资源文件,其中包含1个条目的中性文件.

我的中性资源示例文件是Myresource.resx,我的特定于文化的资源示例文件是Myresource.en-gb.resx.以下代码显示了我当前正在尝试遍历并访问所有资源条目的方式.

Dim culTinfo as New CultureInfo(culturE)
For Each entry As System.Collections.DictionaryEntry In myresourceManager.GetresourceSet(culTinfo,True,TruE)

Next

中性资源文件条目

> FullName /全名
>电话号码/电话号码
>州/州

文化特定资源文件输入

>州/县

当我为特定文化调用GetresourceSet时,我只返回1个条目.我期待(并希望)在覆盖一个特定于文化的条目时取回所有3个条目.这是我想要的回报:

> FullName /全名
>电话号码/电话号码
>州/县

无论如何我能做到这一点吗?谢谢.

解决方法

resourceManager对象的Get@R_489_10495@ng方法正确处理资源文件的遍历,以根据区域性查找给定键的正确值.可以使用 CultureInfo.InvariantCulture获取基本/中性/默认资源文件,它为您提供资源文件的所有可能密钥(假设您以这种方式设置资源文件).

循环使用resourceManager的GetresourceSet方法中的DictionaryEntry对象,基于Invariant Culture,然后使用传入的特定文化为每个Key调用Get@R_489_10495@ng,您将根据文化获得给定键的正确值.

For Each entry As DictionaryEntry In myresourceManager.GetresourceSet(CultureInfo.InvariantCulture,TruE)
     Dim strKey as @R_489_10495@ng = entry.Key.To@R_489_10495@ng()
     Dim strValue as @R_489_10495@ng = myresourceManager.Get@R_489_10495@ng(entry.Key.To@R_489_10495@ng(),culTinfo)
Next

希望这可以帮助!

大佬总结

以上是大佬教程为你收集整理的asp.net从指定文化获取.resx的所有资源(ResourceManager.GetResourceSet)全部内容,希望文章能够帮你解决asp.net从指定文化获取.resx的所有资源(ResourceManager.GetResourceSet)所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。