这是我的RESX文件的样子:
Name Value Comments
Rule_seconds seconds seconds
Rule_Sound Sound Sound
Run Code Online (Sandbox Code Playgroud)
我想要的是:按字符串名称值,如下所示:
public string GetResxNameByValue(string value)
{
// some code to get name value
}
Run Code Online (Sandbox Code Playgroud)
并按如下方式实现:
string str = GetResxNameByValue("seconds");
Run Code Online (Sandbox Code Playgroud)
所以这str将回来Rule_seconds
谢谢!
jur*_*ure 24
这可行
private string GetResxNameByValue(string value)
{
System.Resources.ResourceManager rm = new System.Resources.ResourceManager("YourNamespace.YourResxFileName", this.GetType().Assembly);
var entry=
rm.GetResourceSet(System.Threading.Thread.CurrentThread.CurrentCulture, true, true)
.OfType<DictionaryEntry>()
.FirstOrDefault(e => e.Value.ToString() ==value);
var key = entry.Key.ToString();
return key;
}
Run Code Online (Sandbox Code Playgroud)
有一些额外的错误检查..
小智 5
您可以通过密钥直接访问:
public string gtresource(string rulename)
{
string value = null;
System.Resources.ResourceManager RM = new System.Resources.ResourceManager("CodedUITestProject1.Resource1", this.GetType().Assembly);
value = RM.GetString(rulename).ToString();
if(value !=null && value !="")
{
return value;
}
else
{
return "";
}
}
Run Code Online (Sandbox Code Playgroud)