Os campos de tipo de valor devem ser portátil

TypeName

ValueTypeFieldsShouldBePortable

CheckId

CA1900

Category (Categoria)

Microsoft.Portability

Quebrando alterar

Dividindo - se o campo está visível fora do assembly.Non quebrando - se o campo não estiver visível fora do assembly.

Causa

Esta regra verifica que estruturas declaradas com layout explícito serão alinhada corretamente quando empacotado para código não gerenciado em plataformas de 64 bit.IA-64 não permite que a memória desalinhada acessa e o processo irá falhar se essa violação não é fixo.

Descrição da regra

Estruturas com layout explícito que contêm campos desalinhadas causa falhas em plataformas de 64 bit.

Como corrigir violações

Todos os campos que são menores do que 8 bytes devem ter deslocamentos são múltiplos de dimensionar e campos que são de 8 bytes ou superior deve ter deslocamentos são um múltiplo de 8.Outra solução é usar LayoutKind.Sequential em vez de LayoutKind.Explicit Se razoável.

Quando suprimir avisos

Este aviso deve suprimido somente se ele ocorrer no erro.