簡體   English   中英

被稱為Type.InvokeMember無效。 如何獲得資源價值?

[英]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.InvokeMethodBindingFlags.NonPublic而不是BindingFlags.Public

2)問題與ResourceManager有關。 我本人將嘗試再次重新創建Resources.resx。 如果要進一步調查,請在此處檢查StackOverflow中的類似問題,例如: 找不到適合於指定區域性或中性區域性的任何資源

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM