固定大小的缓冲区适用于某些内部数据类型(bool,byte,short,int,..),但是当需要在struct中定义struct数组时,我到目前为止还不够聪明。
在下文中,假设'recordLayout'是一个包含18个字段的结构,包括一些简单类型的数组,这些字段由不安全和固定大小的缓冲区解决。接下来,我需要从二进制文件填充以下结构(包含struct数组)。
[StructLayout(LayoutKind.Sequential,Pack=1)]
unsafe struct dataBlock { // 2048 bytes
fixed ushort junk[5];
fixed recordLayout records[22]; // doesnt work of course, data type constrained
fixed byte filler[14];
}
我已经尝试创建一个显式的LayoutKind结构,它将固定的字节数组映射到记录数组,但是立即碰到不允许这样做。