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

            packet.OnSerialize(this);

            using var writer = new GameBinaryWriter();

            OnSerialize(writer, _byType[packet.GetType()], packet);

            return(writer.ToArray());
        }
コード例 #2
0
        public byte[] Serialize(SerializablePacket packet)
        {
            if (packet == null)
            {
                throw new ArgumentNullException(nameof(packet));
            }

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

            packet.OnSerialize(this);

            using var writer = new GameBinaryWriter();

            OnSerialize(writer, info, packet);

            return(writer.ToArray());
        }