Неправильно выровнено или перекрыто ошибкой необъектного поля
Я пытаюсь создать следующую структуру:
[StructLayout(LayoutKind.Explicit, Size=14)]
public struct Message
{
[FieldOffset(0)]
public ushort X;
[FieldOffset(2)]
[MarshalAs(UnmanagedType.ByValArray, SizeConst=5)]
private ushort[] Y;
[FieldOffset(12)]
public ushort Z;
}
и я получаю следующую ошибку:
Не удалось загрузить тип «Сообщение» из сборки, поскольку оно содержит поле объекта со смещением 4, которое неправильно выровнено или перекрыто полем без объекта.
Кто-нибудь знает, почему это вызывает ошибку?
Примечание: я не могу использовать Pack, потому что я работаю с компактной структурой. Благодарю.