Impossibile applicare 'System.Runtime.InteropServices.DllImportAttribute' a un metodo generico o annidato in un tipo generico

Una routine viene dichiarata con DllImportAttribute, ma la routine è generica oppure è contenuta in una classe o una struttura generica.

Il Common Language Runtime (CLR) riconosce questo attributo e la sua proprietà EntryPoint come indicazione di una procedura di sostituzione definita in una libreria non gestita a collegamento dinamico (DLL) al di fuori della struttura di .NET Framework. Quando il codice chiama la routine a cui DllImportAttribute viene applicato , Common Language Runtime chiama invece la routine non gestita designata.

Poiché le piattaforme non gestite all'esterno di .NET Framework non riconoscono i tipi generici, non è possibile interagire con tali piattaforme usando tipi generici.

ID errore: BC31526

Per correggere l'errore

  • Se né la routine né il relativo contenitore devono essere generici, rimuovere le Of clausole in modo che non siano generiche.

  • Se la routine o il suo contenitore devono essere generici, rimuovere il DllImportAttribute dalla dichiarazione di questa procedura.

Vedere anche