"System.Runtime.InteropServices.DllImportAttribute" nie można zastosować do metody ogólnej lub zagnieżdżonej w typie ogólnym

Procedura jest deklarowana za pomocą DllImportAttribute, ale albo jest ogólna, albo zawarta w klasie generycznej lub strukturze.

Środowisko uruchomieniowe języka wspólnego (CLR) rozpoznaje ten atrybut i jego EntryPoint właściwość jako wyznaczającą procedurę zastępczą zdefiniowaną w niezarządzanej bibliotece linków dynamicznych (DLL) poza programem .NET Framework. Gdy kod wywołuje procedurę, do której zastosowano DllImportAttribute, środowisko uruchomieniowe języka wspólnego wywołuje zamiast tego wyznaczoną procedurę niezarządzaną.

Ponieważ platformy niezarządzane poza programem .NET Framework nie rozpoznają typów ogólnych, nie można z nimi współpracować przy użyciu typów ogólnych.

Identyfikator błędu: BC31526

Aby naprawić ten błąd

  • Jeśli ani procedura, ani jej kontener nie muszą być ogólne, usuń Of klauzule, aby nie były ogólne.

  • Jeśli procedura lub jej kontener muszą być ogólne, usuń element DllImportAttribute z deklaracji tej procedury.

Zobacz także