在C#中编写关于字节对齐的数据结构

时间:2012-03-14 10:03:26

标签: .net collections byte alignment

我在使用C#创建的文件中存在数据对齐问题,以便在旧版应用中使用。

我将所有数据存储为结构列表。

 List<CParameterItem> m_Items = new List<CParameterItem>();

CParameterItem的样子:

[StructLayout( LayoutKind.Sequential,Pack = 2 )]
public struct CParameterItem
{
    public byte ParamID;
    public ushort Size;
    public byte[] Data;
}

当我尝试迭代集合并将它们写入文件时,我在每个项目之间存在字节对齐问题(每个结构中的字节对齐是正确的)。

BinaryWriter bw = new BinaryWriter( File.Open( theFilename, FileMode.CreateNew ) );
        foreach ( CParameterItem param in m_Items )
        {
            bw.Write( param.ParamID );
            bw.Write( param.Size );
            bw.Write( param.Data );
        }
        bw.Close();

如何理清物品之间的包装?非常感谢。

0 个答案:

没有答案