【发布时间】:2014-12-02 04:46:47
【问题描述】:
说,我有一个类 User 有(字符串 FirstName,列出兄弟姐妹) 我想修改用户的属性。
假设我想用 b 而不是 a 替换字符串。
用户:{ 名字:“愤怒”, 兄弟姐妹 : { “斯大林”, “马克思” } }
使用反射我需要读取各个字符串,以下是输出对象。
用户:{ 名字:“Rbger”, 兄弟姐妹 : { “斯特布林”, “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)
}
}
上面的代码在修改名字时可以正常工作。但不知道如何修改兄弟姐妹中的字符串。
我想我会使用第三个属性(索引属性的可选索引值)。但看起来整个属性都没有被索引。 对于兄弟姐妹, propertyInfo.GetValue(t,null) 给出 2 个字符串。
[0] -- stalin
[1] -- Marx.
谁能告诉我如何在使用 propertyInfo.GetValue(t,null) 获取值后修改上述 2 个字符串?
【问题讨论】:
标签: c# string list reflection