【发布时间】:2013-03-20 21:19:56
【问题描述】:
根据MSDN,
Type.GetProperties() GetProperties 方法不按特定顺序(如字母顺序或声明顺序)返回属性。您的代码不得依赖于返回属性的顺序,因为该顺序会有所不同。
是否可以以某种方式对属性进行注释(可能是自定义属性),以便您可以执行此类操作?
var properties = typeof(myClass).GetProperties()
.AsEnumerable().OrderBy(Func<VoodooOrdinalAttribute>);
与
public class MyClass
{
[VoodooOrdinalAttribute(2)] public string Color { get; set;}
[VoodooOrdinalAttribute(3)] public string Shape { get; set;}
[VoodooOrdinalAttribute(1)] public string Mass { get; set;}
}
还有这个
public class VoodooOrdinalAttribute : Attribute
{
public VoodooOrdinalAttribute(int ordinal)
{
this.Ordinal = ordinal;
}
public int Ordinal { get; set; }
}
并且期望属性的顺序是
- 质量
- 颜色
- 形状
【问题讨论】:
标签: c# reflection types custom-attributes