我需要按照它们在类中声明的顺序使用反射来获取所有属性。根据MSDN,使用时无法保证顺序GetProperties()
GetProperties 方法不按特定顺序返回属性,例如字母顺序或声明顺序。
但我读过有一种解决方法,即按MetadataToken
. 所以我的问题是,这样安全吗?我似乎在 MSDN 上找不到任何关于它的信息。或者有没有其他方法可以解决这个问题?
我当前的实现如下所示:
var props = typeof(T)
.GetProperties(BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic)
.OrderBy(x => x.MetadataToken);