Freigeben über


System.Runtime.InteropServices.DllImportAttribute kann nicht auf Instanzmethoden angewendet werden

Eine nicht freigegebene Prozedur ist mit dem DllImportAttributedeklariert.

Die Common Language Runtime (CLR) erkennt, dass dieses Attribut und seine EntryPoint -Eigenschaft eine Ersetzungsprozedur angeben, die in einer nicht verwalteten DLL (Dynamic Link Library) außerhalb von .NET Framework definiert ist. Wenn Code die Prozedur aufruft, auf die DllImportAttribute angewendet wird, ruft die Common Language Runtime stattdessen die angegebene nicht verwaltete Prozedur auf.

Da nicht verwaltete Plattformen außerhalb von .NET Framework nicht freigegebene Prozeduren nicht auf dieselbe Weise wie .NET Framework unterstützen, ist die Interoperation mit diesen Plattformen unter Verwendung nicht freigegebener Prozeduren nicht möglich.

Fehler-ID: BC31529

So beheben Sie diesen Fehler

  • Wenn die Prozedur nicht einzeln auf jede Instanz ihrer Klasse oder Struktur angewendet werden muss, deklarieren Sie sie als Shared.

  • Wenn die Prozedur nicht Sharedsein darf, entfernen Sie das DllImportAttribute aus der Deklaration dieser Prozedur.

Weitere Informationen