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.