order by MetadataToken解决反射字段顺序问题
Posted Ace007
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了order by MetadataToken解决反射字段顺序问题相关的知识,希望对你有一定的参考价值。
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解决反射字段顺序问题的主要内容,如果未能解决你的问题,请参考以下文章
oracle connect by 递归,反递归,自动补全查询实现