Niepoprawnie wyrównany lub nakładający się błąd pola innego niż obiekt
Próbuję utworzyć następującą strukturę:
[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;
}
i otrzymuję następujący błąd:
Nie można załadować typu „Wiadomość” z zespołu, ponieważ zawiera pole obiektu w przesunięciu 4, które jest niepoprawnie wyrównane lub nakładane przez pole inne niż obiekt.
Czy ktoś wie, dlaczego powoduje to błąd?
Uwaga: nie mogę używać pakietu, ponieważ pracuję ze zwartą strukturą. Dzięki.