【发布时间】:2020-12-13 23:31:27
【问题描述】:
我正在尝试找到一种方法来遍历任何对象中的所有字段。
首先我尝试使用投影来获取值字段并打印它们,效果很好:
var ob = new {DeclarativeSecn = "da" , sksksk = "dingdong" };
foreach (PropertyInfo property in ob.GetType().GetProperties())
{
Console.WriteLine(property.Name + " val " + property.GetValue(ob));
}
当然,我想将字段设置为一些新值,所以在阅读之后,看起来应该可以:
foreach (PropertyInfo property in ob.GetType().GetProperties())
{
property.SetValue(ob,"new String");
}
这给了我“找不到属性集方法”。 我也尝试将 null 作为参数,这在某些地方是这样做的:
property.SetValue(ob,"new String",null);
这具有相同的结果。 为什么这对我来说失败了?
编辑: 有人向我指出,我没有充分描述我的目标。如上所述,目标是遍历任何对象中的字段,就像这个示例对象一样:
var ob = new {DeclarativeSecn = "da" , sksksk = "dingdong" };
然后在原始问题中,我写了 “我想将字段设置为一些新值” 这意味着我想遍历“ob”对象中的字段,并将它们设置为新值。
谢谢
【问题讨论】:
标签: c#