public override void Write(BinaryWriter writer, object obj)
{
var bar = (Bar)obj;
writer.Write(bar.DateTime.Ticks);
writer.Write(bar.OpenDateTime.Ticks);
writer.Write(bar.InstrumentId);
writer.Write(bar.Size);
writer.Write(bar.High);
writer.Write(bar.Low);
writer.Write(bar.Open);
writer.Write(bar.Close);
writer.Write(bar.Volume);
writer.Write(bar.OpenInt);
writer.Write((byte)bar.Status);
if (this.version >= 1)
{
writer.Write((byte)bar.Type);
}
if (this.version >= 2)
{
writer.Write(bar.ProviderId);
}
if (this.version <= 2)
{
if (bar.Fields != null)
{
writer.Write(bar.Fields.Size);
for (var i = 0; i < bar.Fields.Size; ++i)
writer.Write((double)bar.Fields[i]);
}
else
writer.Write(0);
}
if (this.version >= 3)
{
if (bar.Fields != null)
{
writer.Write(true);
this.streamerManager.Serialize(writer, bar.Fields);
return;
}
writer.Write(false);
}
}
}