Partilhar via


Avisos de interoperabilidade

Interação com clientes COM suportam a avisos de interoperabilidade.

Nesta seção

Regra

Descrição

CA1400: Os pontos de entrada de P/Invoke devem existir

Um método público ou protegido é marcado, usando o atributo. DllImportAttribute.Ou a biblioteca não gerenciada não pôde ser localizada ou o método não pôde ser correspondido para uma função na biblioteca.

CA1401: P/Invokes não deverá ser visível

Um método público ou protegido em um tipo público tem o atributo. DllImportAttribute (também é implementado da palavra-chave de declarar em Visual Basic).Tais métodos não devem ser expostos.

CA1402: Evitar sobrecargas em interfaces de COM visíveis

Quando os métodos sobrecarregados estão expostos a clientes COM, apenas a primeira sobrecarga de método manterá seu nome.Sobrecargas subseqüentes são renomeadas exclusivamente por meio do acréscimo ao nome de um caractere de sublinhado (_) e um inteiro que corresponde à ordem de declaração da sobrecarga.

CA1403: Tipos de layout automático não devem ser visível em COM

Um tipo de valor visível em COM é marcado, usando o atributo System.Runtime.InteropServices.StructLayoutAttribute definido como LayoutKind.Auto.O layout desses tipos pode alterar entre versões do .NET Framework, que interromperá a clientes COM que esperam um layout específico.

CA1404: Chamar GetLastError imediatamente após P/Invoke.

É feita uma chamada para o método Marshal.GetLastWin32Error ou o equivalente a Win32 função GetLastError e a chamada imediatamente anterior não é para uma plataforma de invocação de método.

CA1405: A tipos base do tipo visível COM devem estar visível em COM

Um visível em COM tipo deriva de um tipo que não é visível em COM.

CA1406: Evitar Int64 argumentos para os clientes de 6 Visual Basic

Clientes COM 6 de Visual Basic não podem acessar inteiros de 64 bits.

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

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

CA1408: Não use AutoDual ClassInterfaceType

Tipos que utilizam uma interface dual permitem que clientes vincular a um layout de interface específica.Qualquer alteração em uma versão futura no layout do tipo ou quaisquer tipos base interromperá os clientes COM que se vinculam à interface.Por padrão, se o atributo ClassInterfaceAttribute não for especificado, uma interface somente de distribuição é usada.

CA1409: Os tipos de visíveis Com devem ser criados

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

CA1410: Métodos de registro COM devem ter correspondência

Um tipo declara um método marcado com o uso do System.Runtime.InteropServices.ComRegisterFunctionAttribute atributo mas não declara um método marcado com o uso o System.Runtime.InteropServices.ComUnregisterFunctionAttribute atributo, ou vice-versa.

CA1411: Métodos de registro COM não deverá ser visíveis

Um método marcado com o atributo System.Runtime.InteropServices.ComRegisterFunctionAttribute ou o atributo System.Runtime.InteropServices.ComUnregisterFunctionAttribute é visível externamente.

CA1412: Interfaces de marca ComSource como IDispatch

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

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

Campos de instância confidenciais visível em COM tipos de valor são visíveis para clientes COM.Analise o conteúdo dos campos para informações que não deve ser exposta ou que terá efeitos indesejados de design ou de segurança.

CA1414: Marcar booleanos argumentos de P/Invoke com MarshalAs

O tipo de dados Boolean possui diversas representações em código não gerenciado.

CA1415: Declarar P/Invokes corretamente

Esta regra procurará declarações de método de invocação de plataforma destino Win32 as funções que têm um ponteiro para um OVERLAPPED estruturar o parâmetro e o parâmetro gerenciado correspondente não é um ponteiro para uma System.Threading.NativeOverlapped estrutura.