public override async Task WriteToStreamAsync(Type type, object value, Stream writeStream, HttpContent content,
                                                      TransportContext transportContext, CancellationToken cancellationToken)
        {
            cancellationToken.ThrowIfCancellationRequested();

            var avroSerializer  = new AvroMediaTypeFormatter.AvroSerializerEx(type);
            var serializedBytes = avroSerializer.Serialize(value);
            await
            writeStream.WriteAsync(serializedBytes, 0, serializedBytes.Length, cancellationToken)
            .ConfigureAwait(false);
        }
        public override async Task <object> ReadFromStreamAsync(Type type, Stream readStream, HttpContent content, IFormatterLogger formatterLogger,
                                                                CancellationToken cancellationToken)
        {
            cancellationToken.ThrowIfCancellationRequested();

            var avroSerializer = new AvroMediaTypeFormatter.AvroSerializerEx(type);

            using (var memoryStream = new MemoryStream())
            {
                await readStream.CopyToAsync(memoryStream).ConfigureAwait(false);

                return(avroSerializer.Deserialize(memoryStream.ToArray()));
            }
        }