Поделиться через


System.Runtime.InteropServices.DllImportAttribute не может быть применен к методу, который является универсальным или вложенным в универсальный тип

Обновлен: Ноябрь 2007

'System.Runtime.InteropServices.DllImportAttribute' cannot be applied to a method that is generic or nested in a generic type

Процедура объявлена с DllImportAttribute, но является универсальной либо находится в универсальном классе или структуре.

Cреда CLR распознает этот атрибут и его свойство EntryPoint как назначение процедуры замены, определенной в неуправляемой динамически подключаемой библиотеке (DLL) вне платформы .NET Framework. Когда код вызывает процедуру, к которым применяется DllImportAttribute, среда CLR вызывает назначенную неуправляемую процедуру.

Поскольку неуправляемые платформы вне платформы .NET Framework не распознают универсальные типы, с ними нельзя взаимодействовать помощью универсальных типов.

Идентификатор ошибки: BC31526

Исправление этой ошибки

  • Если ни процедура, ни контейнер не должны быть универсальными, то удалите предложения Of, чтобы они перестали быть универсальными.

  • Если процедура или контейнер должны быть универсальными, удалите DllImportAttribute из объявления данной процедуры.

См. также

Основные понятия

Универсальные типы в Visual Basic

Ссылки

DllImportAttribute