Vorrei fare quanto segue:Esiste un'alternativa per l'attributo "Pacchetto" StructLayout in Compact Framework?
[StructLayout(LayoutKind.Sequential, Pack = 1)]
public struct SomeStruct
{
public byte SomeByte;
public int SomeInt;
public short SomeShort;
public byte SomeByte2;
}
Esiste un'alternativa dal pacchetto non è supportata nel quadro compatto?
Aggiornamento: in modo esplicito impostare la struttura e dando FieldOffset per ogni non funziona né in quanto non influisce sul modo struct è confezionato
Update2: Se si tenta di seguito, il programma CF abituato anche correre a causa di come la struttura è ricco:
[StructLayout(LayoutKind.Explicit, Size=8)]
public struct SomeStruct
{
[FieldOffset(0)]
public byte SomeByte;
[FieldOffset(1)]
public int SomeInt;
[FieldOffset(5)]
public short SomeShort;
[FieldOffset(7)]
public byte SomeByte2;
}
so che sembra difficile da credere, ma se lo provate vedrete. Aggiungilo a un progetto CF e prova ad eseguirlo e otterrai una TypeLoadException. Cambiando gli offset rispettivamente a 0,4, 8,10 e funzionerà (ma la dimensione termina con 12).
Speravo che qualcuno avesse una soluzione che utilizzava la riflessione, forse per eseguire il marshalling della dimensione di ciascun tipo di campo individualmente (qualcosa che implicava la ricorsione per gestire le strutture all'interno di strutture o matrici di tipi).
commentato "Layout esplicita non risolve il problema sia" - qual è il vero problema si vuole risolvere? Ciò che attualmente non funziona in realtà. –
Provare a impacchettare la struttura in modo che la dimensione risulti essere 8 byte. Senza l'attributo pack la dimensione viene eseguita il marshalling più grande del previsto (a causa delle dimensioni di impacchettamento predefinite) – SwDevMan81
La soluzione potrebbe riguardare il marshalling dei singoli campi della struttura per determinare la dimensione (inoltre, si noti che potrei disporre anche di array all'interno della struttura); che introduce più problemi come visto con il mio altro post qui: http://stackoverflow.com/questions/1268898/how-do-i-getcustomattributes – SwDevMan81