CA1900:值类型字段应为可移植字段
类型名 |
ValueTypeFieldsShouldBePortable |
CheckId |
CA1900 |
类别 |
Microsoft.Portability |
是否重大更改 |
间断 - 如果该字段在程序集外部可见。 无间断 - 如果该字段在程序集外部不可见。 |
原因
此规则对以下项进行检查:当用显式布局声明的结构封送到 64 位操作系统上的非托管代码时,是否正确对齐。 IA-64 不允许存取未对齐的内存,如果此冲突未得到修复,进程将崩溃。
规则说明
具有显式布局,包含未对齐字段的结构将会导致在 64 位操作系统上发生崩溃。
如何解决冲突
所有小于 8 个字节的字段的偏移量都必须是其大小的倍数,所有不小于 8 个字节的字段的偏移量都必须是 8 的倍数。 另一个解决方案是在适当的情况下使用 LayoutKind.Sequential,而不使用 LayoutKind.Explicit。
何时禁止显示警告
只有当此警告出现在错误中时,才应禁止显示它。