Avisos de interoperabilidade
Os avisos de interoperabilidade dão suporte à interação com clientes COM.
Nesta seção
Regra |
Descrição |
---|---|
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. |
|
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. |
|
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. |
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. |
COM o não oferece suporte a métodos estáticos. |
|
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. |
|
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. |
Um método que foi marcada usando o atributo de System.Runtime.InteropServices.ComRegisterFunctionAttribute ou atributo de System.Runtime.InteropServices.ComUnregisterFunctionAttribute externamente é visível. |
|
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. |
O tipo de dados booliano tiver várias representações em código não gerenciado. |
|
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. |