首页 新闻 会员 周边

反射获取类的属性值

0
悬赏园豆:80 [已解决问题] 解决于 2011-05-27 13:13

现在又俩个实体:

public class User{ 

public string Id { get; set; }

public string Email { get; set; }

public University University { get; set; }

}

public class University{

public string Id { get; set; }

public stUring Name{ get; set; }

}

程序入口

public void Main(){

  User u=new User();

     //赋值

   string str= Serialize(u);

}

public string Serialize( object o)

{

    //在这里这样获取University的Name属性值。

}

 当然以上并不符合实际开发环境。只是想知道递归反射取值。

大侠们帮忙一下????

TFS的主页 TFS | 初学一级 | 园豆:89
提问于:2011-05-26 18:09
< >
分享
最佳答案
0
Type type = o.GetType();

PorpertyInfo pUniversity
= type.GetProperty("University");
Type tUniversity
= pUniversity.ReturnType;

PropertyInfo pName
= tUniversity.GetProperty("Name");
string name = pName.GetValue(pUniversity.GetValue(o, null), null);
return name;
收获园豆:80
小彬 | 小虾三级 |园豆:947 | 2011-05-27 11:14
谢谢,取到啦
TFS | 园豆:89 (初学一级) | 2011-05-27 13:12
其他回答(1)
0
PropertyInfo[] ps = o.GetType().GetProperties();
foreach (PropertyInfo p in ps)
{
if (p.CanRead)
p.GetValue(o,
null);
}
写代码的小2B | 园豆:4371 (老鸟四级) | 2011-05-26 18:33
这样只能取到User基础类型数据,取不到User对象里的自定义类型的值,或者我不知道这样取到
支持(0) 反对(0) TFS | 园豆:89 (初学一级) | 2011-05-27 10:00
同样谢谢你
支持(0) 反对(0) TFS | 园豆:89 (初学一级) | 2011-05-27 10:00
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册