码迷,mamicode.com
首页 > Web开发 > 详细

order by MetadataToken解决反射字段顺序问题

时间:2018-01-29 15:58:09      阅读:177      评论:0      收藏:0      [点我收藏+]

标签:子类   pos   type   ada   www.   bsp   order   属性   turned   

public class Person

{

public string 姓名{get;set;}

}

 

public class Profile:Person

{

public string 档案号{get;set;}

}

 

 

var pros = valueItem.GetType().GetProperties().ToArray();

反射循环取Profile字段的时候发现,Person的字段排在Profile的字段后面,现在要实现Person的字段排在最前面:

尝试加 [DataMember(Order=0)]或[Column(Order=0)]标记均无效.调试观察 发现MetadataToken属性值是父类字段的数字小,子类字段的数字大,因此order by该字段即可:

var pros = (valueItem.GetType().GetProperties().OrderBy(ee=>ee.MetadataToken).ToArray();

 

其他解决办法:https://stackoverflow.com/questions/9977305/c-sharp-how-can-i-sort-the-fields-returned-by-type-getfields-by-their-declar

 

84F67DA5-6A5C-4762-89FA-C3E244FE57E7|From:http://www.cnblogs.com/xuejianxiyang/p/8376000.html

order by MetadataToken解决反射字段顺序问题

标签:子类   pos   type   ada   www.   bsp   order   属性   turned   

原文地址:https://www.cnblogs.com/xuejianxiyang/p/8376000.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!