CA1900: Campos do tipo de valor devem ser portátil
TypeName |
ValueTypeFieldsShouldBePortable |
CheckId |
CA1900 |
<strong>Categoria</strong> |
Microsoft.Portability |
Alteração significativa |
Dividindo - se o campo pode ser visto de fora do assembly. Não-separável - se o campo não estiver visível fora do assembly. |
Causa
Esta regra verifica que estruturas que são declaradas com layout explícito alinhará corretamente quando empacotado para código não gerenciado em sistemas operacionais de 64 bits. IA-64 não permite acessos de memória desalinhada e o processo travará se essa violação não for corrigida.
Descrição da regra
Estruturas que tem layout explícito que contém campos desalinhadas panes de causa nos sistemas operacionais de 64 bits.
Como corrigir violações
Todos os campos que são menores do que 8 bytes devem ter os deslocamentos são um múltiplo de seu tamanho e campos que são de 8 bytes ou mais devem ter os deslocamentos são um múltiplo de 8. Outra solução é usar o LayoutKind.Sequential em vez de LayoutKind.Explicit, se razoável.
Quando suprimir avisos
Este aviso deve ser substituído somente se ele ocorre em erro.