Tôi cần lấy tất cả các thuộc tính bằng cách sử dụng phản chiếu theo thứ tự mà chúng được khai báo trong lớp. Theo MSDN, thứ tự không thể được đảm bảo khi sử dụngGetProperties()
Phương thức GetProperties không trả về thuộc tính theo một thứ tự cụ thể, chẳng hạn như thứ tự bảng chữ cái hoặc thứ tự khai báo.
Nhưng tôi đã đọc rằng có một cách giải quyết bằng cách sắp xếp các thuộc tính theo MetadataToken
. Vì vậy, câu hỏi của tôi là, đó là an toàn? Tôi dường như không thể tìm thấy bất kỳ thông tin nào trên MSDN về nó. Hoặc có cách nào khác để giải quyết vấn đề này?
Triển khai hiện tại của tôi trông như sau:
var props = typeof(T)
.GetProperties(BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic)
.OrderBy(x => x.MetadataToken);