有没有一种方法可以有条件地将属性应用于结构体?
如果机器是32位,我想应用此属性
[StructLayout(LayoutKind.Sequential, Pack = 2, CharSet = CharSet.Unicode)]
如果机器是64位,我想应用此属性
[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
或者,我可以在属性中替换值...
32位(Pack = 2)
[StructLayout(LayoutKind.Sequential, Pack = 2, CharSet = CharSet.Unicode)]
64位(Pack = 8)
[StructLayout(LayoutKind.Sequential, Pack = 8, CharSet = CharSet.Unicode)]
我尝试使用这个example,但它只适用于自定义属性,而不是现有属性。
更新:
如果机器是32位,我想应用此属性
[StructLayout(LayoutKind.Sequential, Pack = 2, CharSet = CharSet.Unicode)]
如果机器是64位,我想应用此属性
[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
或者,我可以在属性中替换值...
32位(Pack = 2)
[StructLayout(LayoutKind.Sequential, Pack = 2, CharSet = CharSet.Unicode)]
64位(Pack = 8)
[StructLayout(LayoutKind.Sequential, Pack = 8, CharSet = CharSet.Unicode)]
我尝试使用这个example,但它只适用于自定义属性,而不是现有属性。
更新:
- 我想编译成“Any CPU”
- 该属性适用于SHFILEOPSTRUCT,根据处理器使用其中之一。
- 我不想编译两个版本。
StructLayoutAttribute
类没有被密封就好了。唉! - simonlchilds