c# – 抛出System.ExecutionEngineException
发布时间:2020-12-15 21:16:32 所属栏目:百科 来源:网络整理
导读:执行此代码行时会抛出此异常 retobj = Marshal.PtrToStructure( buffer,anytype ); 我不知道是什么原因造成的,因为我试图运行的应用程序在其他开发者机器上工作正常. public static object RawDeserialize(byte[] rawdatas,Type anytype) { int rawsize = Ma
执行此代码行时会抛出此异常
retobj = Marshal.PtrToStructure( buffer,anytype ); 我不知道是什么原因造成的,因为我试图运行的应用程序在其他开发者机器上工作正常. public static object RawDeserialize(byte[] rawdatas,Type anytype) { int rawsize = Marshal.SizeOf(anytype); if (rawsize > rawdatas.Length) { return null; } IntPtr buffer = Marshal.AllocHGlobal(rawsize); object retobj = null; try { Marshal.Copy(rawdatas,buffer,rawsize); retobj = Marshal.PtrToStructure(buffer,anytype); } finally { Marshal.FreeHGlobal(buffer); } return retobj; } 我已经多次尝试修复.NET Compact Framework,似乎没有任何工作,有没有人知道这个解决方案? 解决方法
如果您将调试您的程序,您将发现以下行引发异常:
retobj = Marshal.PtrToStructure(buffer,anytype); 主要原因是编组工具不知道如何编组你的类型.这有很多可能的原因,我知道最常见的两个原因是: >结构中的嵌套结构(类型为anytype) >通过为结构添加前缀来解决
?? >嵌套数组. >通过前缀数组解决
?? 希望能帮助到你. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |