如果执行ResourceManager.GetString(Key),则可以获取资源中项目的值。有没有一种方法可以进行反向查找以从给定值的资源中获取密钥(实质上是反翻译)?

最佳答案

您应该能够获取ResourceSet并对其值进行迭代,并在它们相等时返回键。请记住,您需要比较值,而不是引用。遵循这些原则(未经编译和测试,但类似)

  System.Resources.ResourceManager rm =
     new System.Resources.ResourceManager("MyAssembly.MyResources",
         System.Reflection.Assembly.GetExecutingAssembly());
  System.Resources.ResourceSet rs =
     rm.GetResourceSet(System.Globalization.CultureInfo.CurrentCulture,
         false, false);
  System.Collections.IDictionaryEnumerator ide = rs.GetEnumerator();
  while(ide.MoveNext())
  {
      if (ide.Value == val)
          return ide.Key;
  }

10-04 23:38
查看更多