public static ArraySegment <Byte> SerializeToMessagePackMap <K0, T0, K1, T1>(this TypeRegistry r , K0 key0, T0 value0 , K1 key1, T1 value1 ) { var f = new MessagePackFormatter(); f.BeginMap(2); r.GetSerializer <K0>().Serialize(key0, f); r.GetSerializer <T0>().Serialize(value0, f); r.GetSerializer <K1>().Serialize(key1, f); r.GetSerializer <T1>().Serialize(value1, f); f.EndMap(); return(f.GetStore().Bytes); }
public void map16() { var w = new MessagePackFormatter();; int size = 18; w.BeginMap(size); for (int i = 0; i < size; ++i) { w.Value(i); w.Value(i + 5); } var bytes = w.GetStore().Bytes.ToEnumerable().ToArray(); Assert.AreEqual( new Byte[] { 0xde, 0x0, 0x12, 0x0, 0x5, 0x1, 0x6, 0x2, 0x7, 0x3, 0x8, 0x4, 0x9, 0x5, 0xa, 0x6, 0xb, 0x7, 0xc, 0x8, 0xd, 0x9, 0xe, 0xa, 0xf, 0xb, 0x10, 0xc, 0x11, 0xd, 0x12, 0xe, 0x13, 0xf, 0x14, 0x10, 0x15, 0x11, 0x16 }, bytes); var value = MessagePackParser.Parse(bytes); Assert.AreEqual(15, value.GetValueByIntKey(10).GetInt32()); }