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

Aggiornamento: novembre 2007

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

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

Common Language Runtime (CLR) rileva che l'attributo e la sua proprietà EntryPoint di fatto specificano una routine sostitutiva definita in una libreria a collegamento dinamico (DLL, Dynamic-Link Library) non gestita esterna a .NET Framework. Quando il codice chiama la routine a cui è applicato l'attributo DllImportAttribute, Common Language Runtime chiama invece la routine non gestita specificata.

Poiché le piattaforme non gestite esterne a .NET Framework non riconoscono i tipi generici, non è possibile interagire con esse utilizzando dei tipi generici.

ID errore: BC31526

Per correggere l'errore

  • Se non è necessario che la routine né il suo contenitore siano generici, rimuovere le clausole Of in modo che non lo siano più.

  • Se invece è necessario che la routine o il suo contenitore siano generici, rimuovere l'attributo DllImportAttribute dalla dichiarazione della routine.

Vedere anche

Concetti

Tipi generici in Visual Basic

Riferimenti

DllImportAttribute