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())); } }