У меня проблема с выравниванием данных в файле, который я создаю из 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();
Есть идеи, как разобраться в упаковке между предметами?Большое спасибо.