'System.Runtime.InteropServices.DllImportAttribute' não pode ser aplicado a um método genérico ou aninhado em um tipo genérico

Um procedimento é declarado com o DllImportAttribute, mas o procedimento é genérico ou está contido em uma classe ou estrutura genérica.

O CLR (Common Language Runtime) reconhece esse atributo e sua EntryPoint propriedade como designando um procedimento de substituição definido em uma DLL (biblioteca de vínculo dinâmico) não gerenciada fora do .NET Framework. Quando o código chama o procedimento ao qual o DllImportAttribute é aplicado, o ambiente de execução comum chama o procedimento não gerenciado designado.

Como plataformas não gerenciadas fora do .NET Framework não reconhecem tipos genéricos, você não pode interoperá-las usando tipos genéricos.

ID do erro: BC31526

Para corrigir este erro

  • Caso nenhum dos dois, o procedimento ou seu contêiner, precise ser genérico, remova as cláusulas Of para que não sejam genéricas.

  • Se o procedimento ou seu contêiner precisar ser genérico, remova a declaração DllImportAttribute deste procedimento.

Consulte também