zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    15_门面模式
    14_责任链模式
    13_观察者模式
    12_状态模式
    11_策略模式
    10_命令模式
    09_适配器模式
    08_装饰者模式
    07_代理模式
    linux邮件服务器postfix配置实例
  • 原文地址:https://www.cnblogs.com/xuejianxiyang/p/8376000.html
Copyright © 2011-2022 走看看