¿Hay alguna manera de que pueda aplicar un atributo a una estructura de forma condicional?Diferente atributo de estructura basado en 32 bits o 64 bits
Si la máquina es 32 bits quiero aplicar este atributo
[StructLayout(LayoutKind.Sequential, Pack = 2, CharSet = CharSet.Unicode)]
Si la máquina es 64 bits quiero aplicar este atributo
[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
O, alternativamente, podría sustituir un valor dentro del atributo ...
32 bits (Paquete = 2)
[StructLayout(LayoutKind.Sequential, Pack = 2, CharSet = CharSet.Unicode)]
64 bits (Paquete = 8)
[StructLayout(LayoutKind.Sequential, Pack = 8, CharSet = CharSet.Unicode)]
He intentado utilizar esta example pero es para los atributos personalizados, no existiendo unos.
Actualización:
- me gustaría comilla a "Cualquier CPU"
- El atributo es para el SHFILEOPSTRUCT y dependiendo del procesador utiliza o.
- No quiero tener que compilar dos versiones.
¿Va a compilar el programa estáticamente 64 y 32 bit, o está usando "Any CPU" y quiere comportarse de manera diferente en el tiempo de ejecución? –
Si solo la clase 'StructLayoutAttribute' no está sellada. Doh! – simonlchilds
, puede hacer esto con las directivas de compilación condicional. –