请教: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个回答

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

flowerylife
flowerylife 唉,谢谢呀
3 年多之前 回复
u011430760
s_h_w 谢谢,确实没有get和set,加上就好了。不理解为什么要封装才能被GetProperties()出来
5 年多之前 回复

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

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐