当前位置: 代码迷 >> C# >> 请问:C#反射GetType().GetProperties()为什么取不到值
  详细解决方案

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

热度:74   发布时间:2016-05-05 04:20:39.0
请教: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;

 }

------解决思路----------------------
先看看你有没有getter和setter的属性,属性和成员是不一样的
------解决思路----------------------

你不会如1L所说,根本没设置属性吧
------解决思路----------------------
属性是不是私有的,用ilspy看下。

另外,你的英语也太烂了,Properties,y后面加复数怎么是ys呢?
------解决思路----------------------
你的类没有属性,或者没有公共属性