s_h_w
2015-04-01 11:55
采纳率: 100%
浏览 7.4k

请教:C#反射GetType().GetProperties()为什么取不到值?

做了一个方法,传入某对象,如果是string类型则后面加个“1”
加断点propertys的值是{System.Reflection.PropertyInfo[0]}
进不到 foreach循环里,请高手看看这是怎么回事啊?
调用代码是:bm = getObject(bm);

public T getObject(T t)

{

string temp = "";

System.Reflection.PropertyInfo[] propertys = t.GetType().GetProperties();

foreach (System.Reflection.PropertyInfo p in propertys)

{

if (p.PropertyType == typeof(string))

{

temp = p.GetValue(t, null).ToString();

p.SetValue(t, temp+"1", null);

}

}

return t;

}

  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

2条回答 默认 最新

  • bdmh 2015-04-01 12:02
    已采纳

    首先确认你的实例中是否有property,就是通过getter或stter访问的

    已采纳该答案
    打赏 评论
  • threenewbee 2015-04-01 16:23

    bm是什么类型,它有没有属性,并且属性是否是静态的、私有的?

    打赏 评论

相关推荐 更多相似问题