public void SerializeObjectToBufferWriter() { using (ByteBufferWriter bufferWriter = new ByteBufferWriter()) { Cbor.Serialize(SimpleObject, typeof(SimpleObject), bufferWriter, Options); TestBuffer(bufferWriter.WrittenSpan.ToArray()); } }
public static byte[] Serialize(object data) { using (var buffer = new ByteBufferWriter()) { Cbor.Serialize(data, data.GetType(), buffer, Options); return(buffer.WrittenSpan.ToArray()); } }
public override Task WriteResponseBodyAsync(OutputFormatterWriteContext context) { #if (NETCOREAPP2_1 || NETCOREAPP2_2) return(Cbor.SerializeAsync(context.Object, context.ObjectType, context.HttpContext.Response.Body, _cborOptions)); #else PipeWriter writer = context.HttpContext.Response.BodyWriter; Cbor.Serialize(context.Object, context.ObjectType, writer, _cborOptions); ValueTask <FlushResult> flushTask = writer.FlushAsync(); if (flushTask.IsCompleted) { ValueTask completeTask = writer.CompleteAsync(); if (completeTask.IsCompleted) { return(Task.CompletedTask); } return(FinishCompleteAsync(completeTask)); } return(FinishFlushAsync(flushTask)); async Task FinishFlushAsync(ValueTask <FlushResult> localFlushTask) { await localFlushTask.ConfigureAwait(false); await writer.CompleteAsync(); } async Task FinishCompleteAsync(ValueTask localCompleteTask) { await localCompleteTask.ConfigureAwait(false); } #endif }