コード例 #1
0
ファイル: PacketSerializer.cs プロジェクト: savioacp/Obsidian
        public static T FastDeserialize <T>(MinecraftStream minecraftStream) where T : Packet
        {
            if (!deserializationMethodsCache.TryGetValue(typeof(T), out var deserializeMethod))
            {
                deserializationMethodsCache.Add(typeof(T), deserializeMethod = SerializationMethodBuilder.BuildDeserializationMethod <T>());
            }

            return((T)deserializeMethod(minecraftStream));
        }
コード例 #2
0
ファイル: PacketSerializer.cs プロジェクト: savioacp/Obsidian
        public static T FastDeserialize <T>(byte[] data) where T : Packet
        {
            using var stream = new MinecraftStream(data);

            if (!deserializationMethodsCache.TryGetValue(typeof(T), out var deserializeMethod))
            {
                deserializationMethodsCache.Add(typeof(T), deserializeMethod = SerializationMethodBuilder.BuildDeserializationMethod <T>());
            }

            return((T)deserializeMethod(stream));
        }