如何按成员声明的顺序获取类的MemberInfos?

时间:2014-05-06 09:14:30

标签: c# propertyinfo fieldinfo memberinfo

假设我有以下课程:

public class Target
{
   public int field1;
   public int field2;
   public int Prop1 { get; set; }
   public int Prop2 { get; set; }
}

如果我这样做:

foreach(far f in typeof(Target).GetFields())
   Console.WriteLine(f.Name);

我会按照声明的顺序获取字段(field1然后field2)。如果我做GetProperties

,也是一样的

现在,请考虑以下事项:

public class Target
{
   public int field1;
   public int Prop1 { get; set; }
   public int field2;
   public int Prop2 { get; set; }
}

当我这样做时:

    var members = typeof(Target).GetMembers()
                 .Where(m => m.MemberType == MemberTypes.Field ||
                             m.MemberType == MemberTypes.Property);

    foreach (var m in members)
        Console.WriteLine(m.Name);

我得到了以下输出:

Prop1
Prop2
field1
field2

显然,不是按成员声明的顺序(field1Prop1field2Prop2

有什么方法可以按顺序获得会员?

感谢。

编辑:

我关心订单,因为我使用Unity3D(游戏引擎),我正在为某种类型编写自定义编辑器。类型将具有字段和属性,我想按照它们声明的顺序绘制字段/属性。当然,unity确实按照它们声明的顺序绘制字段,但它不绘制属性。这就是为什么我正在制作自己的抽屉/编辑器以支持物业绘制。

enter image description here

0 个答案:

没有答案