.net - 反转 ResourceManager

标签 .net localization .net-2.0

如果执行 ResourceManager.GetString(Key),您可以获取资源中某个项目的值。有没有一种方法可以进行反向查找以从给定值的资源中获取 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;
  }

关于.net - 反转 ResourceManager,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/563506/

相关文章:

c# - 动态解析资源键

iOS Swift 和 localizedStringWithFormat

c# - 如何调试挂起的 WPF 应用程序?

c# - 在 .NET 中实现粘性覆盖

c# - 来自 Microsoft 的“Decimal”源代码 - 它会构建吗?

visual-studio - Visual Studio 2005数据集设计器中的“Cannot change DataType of a column once it has data”错误

ASP.Net:为什么我的按钮的单击/命令事件没有在中继器中绑定(bind)/触发?

c# - SmtpClient 可扩展性问题(仅运行两个请求)

android - Flutter本地化和sdk可能不兼容

c# - 在 ASP.NET 2.0 Web 服务中公开其他类