public static byte[] SerializeSet(IHashSetAccessor data, Func <object, byte[]> valueSerializer) { using (MemoryStream ms = new MemoryStream()) { ms.WriteInt(data.Count); foreach (object elem in data) { ms.WriteBytesArray(valueSerializer(elem)); } Console.WriteLine(ms.Length); return(ms.ToArray()); } }
public static object DeserializeSet(byte[] rawData, IHashSetAccessor destSet, Func <byte[], object> valueDeserializer) { using (MemoryStream ms = new MemoryStream(rawData)) { int nbElem = ms.ReadInt(); while (0 < nbElem) { byte[] elemRawData = ms.ReadBytesArray(); object elem = valueDeserializer(elemRawData); destSet.AddItem(elem); --nbElem; } return(destSet); } }
public static byte[] SerializeSet(IHashSetAccessor data, Func<object, byte[]> valueSerializer) { using (MemoryStream ms = new MemoryStream()) { ms.WriteUShort((ushort)data.Count); foreach (object elem in data) { Console.WriteLine(elem); ms.WriteShortByteArray(valueSerializer(elem)); } Console.WriteLine(ms.Length); return ms.ToArray(); } }
public static object DeserializeSet(byte[] rawData, IHashSetAccessor destSet, Func<byte[], object> valueDeserializer) { using (MemoryStream ms = new MemoryStream(rawData)) { ushort nbElem = ms.ReadUShort(); while (0 < nbElem) { byte[] elemRawData = ms.ReadShortBytes(); object elem = valueDeserializer(elemRawData); destSet.AddItem(elem); --nbElem; } return destSet; } }