针对 P/Invoke 源生成的 SYSLIB 诊断

下表显示 .NET 7 及更高版本中平台调用 (P/Invoke) 源生成分析器的诊断 ID。 SYSLIB1054 自动提醒你在编译时可以使用源生成来生成 P/Invoke 封送代码的位置。 其余诊断提醒你与使用源生成器相关的错误。

诊断 ID 标题 说明
SYSLIB1050 LibraryImportAttribute 用法无效。 - 使用“LibraryImportAttribute”标记时,方法“{0}”应为“static”、“partial”和非泛型。 P/Invoke 源生成将忽略方法“{0}”。
- 方法“{0}”包含在未标记为“partial”的类型“{1}”中。 P/Invoke 源生成将忽略方法“{0}”。
- 方法“{0}”上的“StringMarshalling”和“StringMarshallingCustomType”的配置无效。
SYSLIB1051 源生成的 P/Invoke 不支持指定的类型。 - 生成的源不会处理参数“{1}”的封送处理。
- 生成的源不会处理方法“{1}”的返回值的封送处理。
SYSLIB1052 源生成的 P/Invoke 不支持指定的配置。 - 源生成的 P/Invoke 不支持配置。 如果需要指定的配置,请改用常规 DllImport
- 源生成的 P/Invokes 不支持参数“{1}”的指定配置。
- 源生成的 P/Invokes 不支持方法“{1}”的返回值的指定配置。
- 源生成的 P/Invoke 不支持“{1}”指定的值。
- 源生成的 P/Invoke 不支持指定的封送配置。
SYSLIB1053 指定的 LibraryImportAttribute 参数不能转发到 DllImportAttribute “{0}”在“DllImportAttribute”中没有等效项,不会转发。
SYSLIB1054 使用 LibraryImportAttribute 而不是 DllImportAttribute 在编译时生成 P/Invoke 封送代码。
SYSLIB1055 CustomMarshallerAttribute 用法无效。
SYSLIB1056 指定的本机类型无效。
SYSLIB1057 封送程序类型没有必需的形状。
SYSLIB1058 NativeMarshallingAttribute 用法无效。
SYSLIB1059 封送程序类型不支持分配构造函数。
SYSLIB1060 指定的封送程序类型无效。
SYSLIB1061 封送程序类型具有不兼容的方法签名。
SYSLIB1062 必须使用 <AllowUnsafeBlocks>true</AllowUnsafeBlocks> 更新项目。

有关源生成的 P/Invoke 详细信息,请参阅平台调用的源生成教程:在源生成的 P/Invoke 中使用自定义封送程序

另请参阅