[英]Setting variable through reflection
我嘗試設置一個變量值,知道它的名稱是一個字符串,例如:
//JAVASCRIPT version
myObj["varName"] = someValue;
在stackoverflow.com上閱讀了一些其他答案后,我發現了以下解決方案
// C# version
myObj.GetType ().GetProperty ("varName").SetValue (myObj, someValue, null);
編譯它會給我一個NullReference異常,盡管我可以清楚地看到我的類具有一個名稱完全相同的公共變量。
我是C#的新手,可能會丟失一些東西,如果有人可以指出我的錯誤,我將不勝感激。
根據您的描述, myVar
是一個字段。 因此,您需要使用GetField
而不是GetProperty
如果變量是一個字段,這應該可以解決問題:
myObj.GetType().GetField("varName", BindingFlags.Instance | BindingFlags.Public).SetValue(myObj, someValue, null);
如果是屬性:
myObj.GetType().GetProperty("varName", BindingFlags.Instance | BindingFlags.Public).SetValue(myObj, someValue, null);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.