コード例 #1
0
        public void Deserialize(byte[] payload, SerializablePacket packet)
        {
            if (payload == null)
            {
                throw new ArgumentNullException(nameof(payload));
            }

            if (packet == null)
            {
                throw new ArgumentNullException(nameof(packet));
            }

            using var reader = new GameBinaryReader(payload);

            OnDeserialize(reader, _byType[packet.GetType()], packet);

            packet.OnDeserialize(this);
        }
コード例 #2
0
        public void Deserialize(byte[] buffer, int index, int count, SerializablePacket packet)
        {
            if (packet == null)
            {
                throw new ArgumentNullException(nameof(packet));
            }

            if (!_byType.TryGetValue(packet.GetType(), out var info))
            {
                throw new UnmappedMessageException();
            }

            using var reader = new GameBinaryReader(buffer, index, count);

            OnDeserialize(reader, info, packet);

            packet.OnDeserialize(this);
        }