[英]calledType.InvokeMember don't work. How to get value of resource?
我嘗試獲取ressource.resx的值,但我做不到。
我做 :
foreach (string certif in ContactCertifications)
{
Type calledType = Type.GetType("TestNamespace.Resources");
String s = (String)calledType.InvokeMember(certif,BindingFlags.InvokeMethod
| BindingFlags.Public |BindingFlags.Static,null,null,null); }
certif =“ PRG_CARTV”
namedType是:{Name =“ Resources” FullName =“ TestNamespace.Resources”},當我在“ String s =(String)namedType”行中時,出現錯誤:“找不到方法'TestNamespace.Resources.PRG_CARTV'。 “
當我有String s = TestNamespace.Resources.PRG_CARTV;
它在工作,所以我不懂。
當我簡單地做:
var myManager = new ResourceManager(typeof(Resources));
var myString = myManager.GetString("PRG_CARTV");
它不起作用,出現一個錯誤:“找不到用於指定區域性或中性區域性的適當資源。請確保\\“ TestNamespace.Ressources.resources \\”已正確嵌入或鏈接到程序集中...”
您在這里有2個問題:
1)通過反射獲得資源的價值,我嘗試了這一方法並工作:
String s = (String) calledType.InvokeMember(certif, BindingFlags.GetProperty | BindingFlags.NonPublic | BindingFlags.Static, null, null, null);
請注意已更改的綁定標志: BindingFlags.GetProperty
而不是BindingFlags.InvokeMethod
和BindingFlags.NonPublic
而不是BindingFlags.Public
2)問題與ResourceManager有關。 我本人將嘗試再次重新創建Resources.resx。 如果要進一步調查,請在此處檢查StackOverflow中的類似問題,例如: 找不到適合於指定區域性或中性區域性的任何資源
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.