如何按照它们在类中的排列顺序获取类型 FieldInfos/PropertyInfos 作为 MemberInfo 数组?
class Test
{
public bool First { get; set; }
public int Second;
public string Third { get; set; }
}
http://msdn.microsoft.com/en-us/library/ch9714z3.aspx http://msdn.microsoft.com/en-us/library/ch9714z3.aspx
GetFields 方法不按特定顺序(例如字母顺序或声明顺序)返回字段。您的代码不得依赖于返回字段的顺序,因为该顺序会有所不同。
http://msdn.microsoft.com/en-us/library/kyaxdd3x.aspx http://msdn.microsoft.com/en-us/library/kyaxdd3x.aspx
GetProperties 方法不按特定顺序(例如字母顺序或声明顺序)返回属性。您的代码不得依赖于返回属性的顺序,因为该顺序会有所不同。
您需要自己定义顺序,也许使用属性:
class Test
{
[Order(1)] public bool First { get; set; }
[Order(2)] public int Second;
[Order(3)] public string Third { get; set; }
}
...
[AttributeUsage(AttributeTargets.Property | AttributeTargets.Field,
Inherited = true, AllowMultiple = false)]
[ImmutableObject(true)]
public sealed class OrderAttribute : Attribute {
private readonly int order;
public int Order { get { return order; } }
public OrderAttribute(int order) {this.order = order;}
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)