Net.Like.Xue.Tokyo/Assets/BITKit/Core/Binary/IEnumerableSupport.cs

32 lines
852 B
C#

using System.IO;
namespace BITKit
{
public class IEnumerableSupport:NetMessageReader<object[]>
{
public override object[] ReadBinary(BinaryReader reader)
{
var length = reader.ReadInt32();
var objects = new object[length];
for (int i = 0; i < length; i++)
{
var count = reader.Read();
objects[i] = BITBinary.ReadAsValue(reader.ReadBytes(count));
}
return objects;
}
public override void WriteBinary(BinaryWriter writer, object[] value)
{
writer.Write(value.Length);
foreach (var x in value)
{
var bytes = BITBinary.WriteAsBytes(x);
writer.Write(bytes.Length);
writer.Write(bytes);
}
}
}
}