System.Runtime.InteropServices.DllImportAttribute kann nicht auf eine Methode angewendet werden, die generisch oder in einem generischen Typ enthalten ist

Aktualisiert: November 2007

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

Eine Prozedur ist mit dem DllImportAttribute deklariert, doch entweder ist die Prozedur generisch, oder sie ist in einer generischen Klasse oder Struktur enthalten.

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 generische Typen nicht erkennen, können Sie nicht mit diesen Plattformen unter Verwendung von generischen Typen interoperieren.

Fehler-ID: BC31526

So beheben Sie diesen Fehler

  • Wenn weder die Prozedur noch ihr Container generisch sein müssen, entfernen Sie die Of-Klauseln, sodass sie nicht generisch sind.

  • Wenn die Prozedur oder ihr Container generisch sein muss, entfernen Sie das DllImportAttribute aus der Deklaration dieser Prozedur.

Siehe auch

Konzepte

Generische Typen in Visual Basic

Referenz

DllImportAttribute