自定义封送器需要其他成员
自定义封送器分析器已更改为要求所有以元素为中心的封送模式同时满足托管到非托管和非托管到托管的形状。
旧行为
具有 MarshalMode.ElementIn
的自定义封送器仅需要 ConvertToUnmanaged
方法。 具有 MarshalMode.ElementOut
的自定义封送器仅需要 ConvertToManaged
方法。
新行为
从 .NET 8 开始,对于具有 MarshalMode.ElementIn
或 MarshalMode.ElementOut
但不同时具有 ConvertToUnmanaged
和 ConvertToManaged
方法的自定义封送器,将报告 SYSLIB1057。
引入的版本
.NET 8 RC 1
中断性变更的类型
此项更改可能会影响源兼容性。
更改原因
引入源生成的 COM 后,可以在托管到非托管和非托管到托管方案的元素方案中使用封送器。 此更改将更新分析器,以确保在可能会使用封送器的所有方案中用户定义的封送器都具有所需的成员。
建议的操作
将 ConvertToManaged
和 ConvertToUnmanaged
方法添加到封送器类型。