I need to get fieldinfo in a guaranteed order with respect to declaration order. Right now I\'m using attributes to specify order.
Is there a more automatic way of d
If you want the ordering of the fields returned by Type.GetFields to be stable, try sorting by the MetadataToken property.
Type myType = ...
BindingFlags flags = ...
IEnumerable orderedFields = myType.GetFields(flags)
.OrderBy(field => field.MetadataToken);
Empirically, ordering fields in this manner has been found to return them in declaration order, although this isn't documented.
By the way, the question as asked doesn't entirely make sense; there isn't any reason to believe that the reflection API is tied in any way to how the runtime lays objects out in memory.