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对象的GetString方法正确处理资源文件的遍历,以根据区域性查找给定键的正确值.可以使用 CultureInfo.InvariantCulture获取基本/中性/默认资源文件,它为您提供资源文件的所有可能密钥(假设您以这种方式设置资源文件).循环使用ResourceManager的GetResourceSet方法中的DictionaryEntry对象,基于Invariant Culture,然后使用传入的特定文化为每个Key调用GetString,您将根据文化获得给定键的正确值. For Each entry As DictionaryEntry In myResourceManager.GetResourceSet(CultureInfo.InvariantCulture,True)
Dim strKey as String = entry.Key.ToString()
Dim strValue as String = myResourceManager.GetString(entry.Key.ToString(),cultInfo)
Next
希望这可以帮助! (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- 修改服务器配置 让asp.net文件后缀名随心所欲
- asp.net-mvc – 路由测试ASP.NET MVC4
- asp-classic – 使用FileSystemObject的文件权限 – CScrip
- asp.net-mvc – 使用ASPX View Engine与MVC 5
- 如何下载特定版本的ASP.NET MVC 5源代码
- asp.net-mvc – ASP.NET MVC会话超时,绝对还是滑动?
- asp.net-mvc – ASP.NET MVC路由和静态数据(即图像,脚本等)
- 如何从ASP.NET MVC中的自定义帮助程序中访问当前的System.W
- asp.net-mvc – ASP.NET MVC流畅的nNibernate,IoC工具是什么
- asp.net-mvc-4 – 如何通过MVC4 upshot上传相关实体
- 对于单个控件,asp.net – ValidateRequest =“fa
- asp.net-mvc-3 – 在MVC 3的AuthorizeAttribute中
- asp.net-mvc – Kendo ASP.NET MVC – 索引超出范
- asp.net – 从web.config中膨胀时,SmtpClient不会
- asp.net核心 – ASP.Net MVC 6中使用Tag Helpers
- asp.net-mvc – Gzip压缩无法运行ASP.net MVC5
- ASP.NET 1.1到4.0迁移:事件不工作
- asp.net-mvc – 嵌套TagBuilder -as TagBuilderT
- ASP.Net自定义会话状态管理
- System.Net.ServicePointManager.DefaultConnect
