Esiste un modo per applicare condizionatamente un attributo a una struttura?Attributo struct differente basato su 32 bit o 64 bit
Se la macchina è 32bit voglio applicare questo attributo
[StructLayout(LayoutKind.Sequential, Pack = 2, CharSet = CharSet.Unicode)]
Se la macchina è 64bit voglio applicare questo attributo
[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
Oppure, in alternativa potrei sostituire un valore all'interno dell'attributo ...
32bit (confezione = 2)
[StructLayout(LayoutKind.Sequential, Pack = 2, CharSet = CharSet.Unicode)]
64bit (confezione = 8)
[StructLayout(LayoutKind.Sequential, Pack = 8, CharSet = CharSet.Unicode)]
Ho provato ad utilizzare questo example ma è per gli attributi personalizzati, non esistente quelli.
Aggiornamento:
- mi piacerebbe comile a "Qualsiasi CPU"
- L'attributo è per il SHFILEOPSTRUCT ea seconda del processore usa o.
- Non voglio dover compilare due versioni.
Compilerai il programma staticamente a 64 e 32 bit, o stai usando "Any CPU" e vuoi comportarti diversamente in fase di runtime? –
Se solo la classe 'StructLayoutAttribute' non è stata sigillata. Doh! – simonlchilds
potresti riuscire a farlo con direttive di compilazione condizionale. –