dotnet 6 修复找不到 EnumeratorToEnumVariantMarshaler 问题

在 .NET Framework 定义的 EnumeratorToEnumVariantMarshaler 类型是在 dotnet core 里缺失的

代替方法是使用 MarshalType 属性写字符串,如以下代码

        [MethodImpl(MethodImplOptions.InternalCall)]
        [DispId(1)]
        [TypeLibFunc(1)]
        [return: MarshalAs(UnmanagedType.CustomMarshaler, MarshalType = "System.Runtime.InteropServices.CustomMarshalers.EnumeratorToEnumVariantMarshaler")]
        IEnumerator GetEnumerator();

参考文档

CustomMarshalers - EnumeratorToEnumVariantMarshaler · Issue #47243 · dotnet/runtime

posted @ 2023-09-05 08:44  lindexi  阅读(23)  评论(0编辑  收藏  举报