Freigeben über


System.Runtime.InteropServices.DllImportAttribute kann nicht auf eine Instanzenmethode angewendet werden

Aktualisiert: November 2007

'System.Runtime.InteropServices.DllImportAttribute' cannot be applied to instance methods

Eine nicht freigegebene Prozedur ist mit dem DllImportAttribute deklariert.

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 auf andere Weise als .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 Shared sein darf, entfernen Sie das DllImportAttribute aus der Deklaration dieser Prozedur.

Siehe auch

Referenz

DllImportAttribute

Shared (Visual Basic)