public async Task SerializeOBjectToMemoryStream()
        {
            MemoryStream stream = new MemoryStream();
            await Cbor.SerializeAsync(SimpleObject, typeof(SimpleObject), stream, Options);

            TestBuffer(stream.ToArray());
        }
        public async Task SerializeObjectToFileStream()
        {
            string tempFileName = Path.GetTempFileName();

            try
            {
                using (FileStream stream = File.OpenWrite(tempFileName))
                {
                    await Cbor.SerializeAsync(SimpleObject, typeof(SimpleObject), stream, Options);
                }

                byte[] actualBuffer = File.ReadAllBytes(tempFileName);
                TestBuffer(actualBuffer);
            }
            finally
            {
                File.Delete(tempFileName);
            }
        }
예제 #3
0
        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
        }
 public Task SerializeDahomey()
 {
     return(Cbor.SerializeAsync(document, Stream.Null, CborOptions.Default));
 }