我需要使用反射按照它们在类中声明的顺序获取所有属性。根据 MSDN 的规定,在使用 GetProperties()
时无法保证订单
GetProperties 方法不返回特定 顺序,如字母顺序或声明顺序。
但是我读到有一个变通方法,通过 MetadataToken
对属性进行排序。所以我的问题是,这样安全吗?我似乎找不到任何关于 MSDN 的信息。还有别的办法解决这个问题吗?
我目前的执行情况如下:
var props = typeof(T)
.GetProperties(BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic)
.OrderBy(x => x.MetadataToken);