“System.Runtime.InteropServices.DllImportAttribute”不能应用于属于泛型类型或者嵌入泛型类型中的方法

更新:2007 年 11 月

使用 DllImportAttribute 声明了某个过程,但该过程要么属于泛型类型,要么包含在泛型类或结构中。

公共语言运行库 (CLR) 将此属性 (Attribute) 及其 EntryPoint 属性 (Property) 的行为识别为:指定一个在 .NET Framework 外部的非托管动态链接库 (DLL) 中定义的替换过程。当代码调用应用了 DllImportAttribute 的过程时,公共语言运行库将改为调用指定的非托管过程。

由于 .NET Framework 外部的非托管平台无法识别泛型类型,因此,您将无法使用泛型类型与它们进行交互操作。

**错误 ID:**BC31526

更正此错误

  • 如果过程及其容器都不需要为泛型,请移除 Of 子句,以使它们不是泛型。

  • 如果过程或它的容器需要为泛型,请从此过程的声明中移除 DllImportAttribute

请参见

概念

Visual Basic 中的泛型类型

参考

DllImportAttribute