public override object Read(BinaryReader reader, byte version)
{
var bar = new Bar();
bar.DateTime = new DateTime(reader.ReadInt64());
bar.OpenDateTime = new DateTime(reader.ReadInt64());
bar.InstrumentId = reader.ReadInt32();
bar.Size = reader.ReadInt64();
bar.High = reader.ReadDouble();
bar.Low = reader.ReadDouble();
bar.Open = reader.ReadDouble();
bar.Close = reader.ReadDouble();
bar.Volume = reader.ReadInt64();
bar.OpenInt = reader.ReadInt64();
bar.Status = (BarStatus)reader.ReadByte();
if (version >= 1)
bar.Type = (BarType)reader.ReadByte();
if (version >= 2)
{
bar.ProviderId = reader.ReadInt32();
}
if (version <= 2)
{
int num = reader.ReadInt32();
if (num != 0)
{
//bar.Fields = new ObjectTable();
for (var i = 0; i < num; i++)
{
bar.Fields[i] = reader.ReadDouble();
}
}
}
if (version >= 3 && reader.ReadBoolean())
{
var fields = (ObjectTable)this.streamerManager.Deserialize(reader);
for (int i = 0; i < fields.Size; i++)
{
bar.Fields[i] = fields[i];
}
// bar.Fields = (ObjectTable)this.streamerManager.Deserialize(reader);
}
return bar;
}