Partilhar via


Avisos de interoperabilidade

Os avisos de interoperabilidade dão suporte à interação com clientes COM.

Nesta seção

Regra

Descrição

CA1400: os pontos de entrada P/Invoke devem existir

Um público ou um método protegido são marcados usando o atributo de System.Runtime.InteropServices.DllImportAttribute.Ou biblioteca não gerenciado não pode ser encontrada ou o método não pode corresponder a uma função na biblioteca.

CA1401: P/Invokes não deve estar visível

Um público ou um método protegido em um tipo utilitário têm o atributo de System.Runtime.InteropServices.DllImportAttribute (também implementada pela palavra-chave declarar no Visual Basic).Esses métodos não devem ser expostos.

CA1402: evitar sobrecargas em interfaces visíveis COM

Quando os métodos sobrecarregados são expostos para clientes COM, apenas a primeira sobrecarga do método retém seu nome.As sobrecargas subsequentes são renomeadas exclusivamente através do nome a um caractere de sublinhado (_) e um inteiro que corresponde à ordem de declaração de sobrecarga.

CA1403: os tipos de layout automático não devem ser visíveis em COM

Um tipo de valor COM- visível é marcado usando o atributo de System.Runtime.InteropServices.StructLayoutAttribute definido como LayoutKind.Auto.O layout deless podem ser alterados entre versões de .NET Framework, que interromperão clientes COM que esperam por um layout específico.

CA1404: chamar GetLastError logo depois de P/Invoke

For feita uma chamada para o método de Marshal.GetLastWin32Error ou à função de  Win32GetLastError de equivalente, e a chamada imediatamente anterior não é a um método de invocação de plataforma.

CA1405: os tipos base de tipo visível em COM devem ser visíveis em COM

Um tipo COM- visível é derivado de um tipo que não é COM- visível.

CA1406: evitar argumentos Int64 para clientes do Visual Basic 6

Visual Basic 6 clientes COM não pode acessar inteiros de 64 bits.

CA1407: evitar membros estáticos em tipos visíveis COM

COM o não oferece suporte a métodos estáticos.

CA1408: não usar AutoDual ClassInterfaceType

Tipos que usa uma interface dupla permite que clientes para associar a um layout específico da interface.Todas as modificações em uma versão futura ao layout do tipo ou de qualquer tipo de base do travará clientes COM que são associados à interface.Por padrão, se o atributo de ClassInterfaceAttribute não for especificado, uma interface de expedição somente é usada.

CA1409: os tipos visíveis Com devem ser criáveis

Um tipo de referência que é marcado como visível a especificamente COM parâmetros contém um construtor público mas não contém um construtor (sem parâmetros) público padrão.Um tipo sem um construtor público padrão não é creatable por clientes COM.

CA1410: os métodos de registro COM devem ser correspondentes

Um tipo declara um método marcado usando o atributo de ComRegisterFunctionAttribute mas não declara um método marcado usando o atributo de ComUnregisterFunctionAttribute , ou vice-versa.

CA1411: os métodos de registro COM não devem estar visíveis

Um método que foi marcada usando o atributo de System.Runtime.InteropServices.ComRegisterFunctionAttribute ou atributo de System.Runtime.InteropServices.ComUnregisterFunctionAttribute externamente é visível.

CA1412: marcar interfaces ComSource como IDispatch

Um tipo é marcado usando o atributo de System.Runtime.InteropServices.ComSourceInterfacesAttribute e, pelo menos uma das interfaces especificadas não está marcado usando o atributo de System.Runtime.InteropServices.InterfaceTypeAttribute definido como ComInterfaceType.InterfaceIsIDispatch.

CA1413: evitar campos não públicos em tipos de valor visíveis COM

Os campos público da instância de tipo de valor COM- visíveis são visíveis aos clientes COM.Revise o conteúdo dos campos de informações que não são expostos, ou que terá efeitos não intencional de design ou de segurança.

CA1414: marcar argumentos P/Invoke boolianos com MarshalAs

O tipo de dados booliano tiver várias representações em código não gerenciado.

CA1415: declarar P/Invokes corretamente

Esta regra procura as declarações de método de invocação de plataforma que visem as funções de Win32 que têm um ponteiro para um parâmetro SOBREPOR da estrutura e o parâmetro gerenciado correspondente não é um ponteiro para uma estrutura de NativeOverlapped.