如果执行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;
}