Alinhado ou sobreposto incorretamente por um erro de campo que não é objeto
Estou tentando criar a seguinte estrutura:
[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;
}
e recebo o seguinte erro:
Não foi possível carregar o tipo 'Mensagem' do assembly porque ele contém um campo de objeto no deslocamento 4 que está alinhado incorretamente ou sobreposto por um campo não objeto.
Alguém sabe por que isso está causando um erro?
Nota: Eu não posso usar o Pack porque estou trabalhando com o framework compacto. Obrigado.