public void WriteObject(AmfObject amfObject, bool isArray = false)
{
if(!isArray)
writer.Write((byte) Amf0Types.Object);
else
{
writer.Write((byte) Amf0Types.Array);
writer.Write(
(int)
(amfObject.Booleans.Count + amfObject.Numbers.Count + amfObject.Strings.Count + amfObject.Nulls));
}
foreach (var s in amfObject.Strings)
{
WriteString(s.Key, true);
WriteString(s.Value);
}
foreach (var s in amfObject.Numbers)
{
WriteString(s.Key, true);
WriteNumber(s.Value);
}
foreach (var s in amfObject.Booleans)
{
WriteString(s.Key, true);
WriteBoolean(s.Value);
}
//objects end with 0x00,0x00, (oject end identifier [0x09 in this case])
writer.Write((byte)0x00);
writer.Write((byte)0x00);
writer.Write((byte) Amf0Types.ObjectEnd);
}