0
說,我有一個類的用戶有(字符串名字,列表兄弟) 我想修改用戶的屬性。使用反射修改字符串列表
我們假設我想用b替換字符串而不是a。
用戶:{ 姓:「狂怒」, 兄弟姐妹:{ 「斯大林」, 「馬克思」 }}
使用反射我需要讀取各個串和以下將是輸出目的。
用戶:{ 姓: 「Rbger」, 兄弟姐妹:{ 「stblin」, 「Mbrx」 }}
讓我們看看下面的函數
private object modifyObject(object t){
foreach(var propertyInfo in t.GetType.GetProperties(){
var stringToBeModified = propertyInfo.GetValue(t,null);
propertyInfo.SetValue(t, stringToBeModified.replace("a","b"),null)
}
}
上面的代碼工作罰款時修改firstName。但不知道如何修改兄弟姐妹中的字符串。
我想我會利用第三個屬性(索引屬性的可選索引值)。但它看起來像整個財產沒有索引。 爲同胞,propertyInfo.GetValue(t,null)給出2個字符串。
[0] -- stalin
[1] -- Marx.
誰能告訴我怎麼可以讓使用propertyInfo.GetValue後的值修改上面的2串(T,NULL)?
我可以有一個動態類型。說propertyInfo.GetValue(t,null)可以返回一個int列表或者字符串列表或者bool列表。在那種情況下,我該怎麼做呢? – Bala 2014-12-02 05:09:10
@Bala,因爲int,string和bool不相互兼容,你可能沒有共同的邏輯來處理它們。您可以檢查屬性類型並有條件地執行代碼。請參閱[PropertyInfo.PropertyType](http://msdn.microsoft.com/en-us/library/system.reflection.propertyinfo.propertytype(v = vs.110).aspx) – pushpraj 2014-12-02 09:13:33
感謝Pushpraj,它的工作。 – Bala 2014-12-15 07:08:38