Partilhar via


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.