Если вы хотите, чтобы порядок полей, возвращаемых Type.GetFields
, был стабильным, попробуйте выполнить сортировку по свойству MetadataToken
.
Type myType = ...
BindingFlags flags = ...
IEnumerable<FieldInfo> orderedFields = myType.GetFields(flags)
.OrderBy(field => field.MetadataToken);
Опытным путем было найдено, что поля порядка таким образом возвращают их в порядке объявления , , хотя это не задокументировано .
Кстати, вопрос, который задают, не совсем имеет смысл; нет никаких оснований полагать, что API отражения каким-либо образом связан с тем, как среда выполнения размещает объекты в памяти.