代码之家  ›  专栏  ›  技术社区  ›  Brian

撤消资源管理器

  •  3
  • Brian  · 技术社区  · 16 年前

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

    1 回复  |  直到 16 年前
        1
  •  4
  •   Erik Funkenbusch    16 年前

    您应该能够获取资源集并迭代它的值,如果它们相等,则返回键。请记住,您需要比较值,而不是引用。沿着这些线的东西(不是编译和测试,而是类似的东西)

      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;
      }