如何从本地化的字符串值获取资源的密钥?

时间:2016-05-14 20:17:27

标签: c#

您可以使用以下内容从资源键获取值:

string s = Namespace.ResourceLocation.ResourceFile.KeyName;

有没有办法从字符串值中获取密钥名称?

2 个答案:

答案 0 :(得分:1)

您可以遍历资源文件并使用值获取密钥名称。

using System.Resources;
using (ResXResourceReader oReader = new ResXResourceReader(ResourceFilePath))
{
      IDictionaryEnumerator oResource = oReader.GetEnumerator();
      while (oResource.MoveNext())
      {
           if (oResource.Value.ToString() == "VALUE")
               return oResource.Key.ToString();
      }
 }

答案 1 :(得分:0)

为了完整性,从inquisitive_mind的回答中我最终得到了:

var resDict = StronglyTypedResource
                   .ResourceManager
                   .GetResourceSet(CultureInfo.InvariantCulture, true, false)
                       .Cast<DictionaryEntry>()
                       .ToDictionary(x => x.Key.ToString(), x => x.Value.ToString());

要将我的强类型资源文件放入字典中 - 我最初错过的位是启用createIfNotExists来加载资源文件。

然后只需查询字典:

entity.ResourceKeyValue =
    resDict.First(x => x.Value.ToLower() == stringValue.Trim().ToLower()).Key;