我用了
public static Object PtrToStructure(
IntPtr ptr,
Type structureType
)
形式为
private static object ReadStruct(byte[] buffer, Type t)
{
GCHandle handle =
GCHandle.Alloc(buffer,
GCHandleType.Pinned);
Object temp =
Marshal.PtrToStructure(
handle.AddrOfPinnedObject(),
t);
handle.Free();
return temp;
}
用于在 .net 4.0 中编组数据。Silverlight 不支持此方法。根据下面的文章,.net 方法只是本机 win32 函数的包装器。给出了 Marshal.AllocHGlobal 的示例(来自 Kernel32.dll 的 Win32 LocalAlloc 函数)
这些都是新的水域,因为 SL5 刚刚为受信任的应用程序启用了 pInvoke(也在浏览器中) PtrToStructure 包装的 win32 函数是什么,是否有任何东西阻止在 SL5 中使用它?