This appears to be a limitation imposed by a difference between the requirements of ECMA-335 for enums (ECMA-335 Partition II §14.3):
…they shall have auto field layout (§10.1.2); …
And the expectations of Marshal.SizeOf
:
You can use this method when you do not have a structure. The layout must be sequential or explicit.
Based on this, you will need to use Enum.GetUnderlyingType
before calling Marshal.SizeOf
.