Esempio n. 1
0
        /// <summary>
        /// Serialize the specified object to JSON.
        /// </summary>
        public static async Task <Stream> ToJsonStreamAsync <TEntity>(
            this TEntity entity,
            JsonNet.JsonSerializerSettings settings,
            CancellationToken cancellationToken = default)
            where TEntity : class
        {
            _ = entity ?? throw new ArgumentNullException(nameof(entity));
            _ = settings ?? throw new ArgumentNullException(nameof(settings));

            var stream     = new MemoryStream();
            var serializer = JsonNet.JsonSerializer.Create(settings);

            using var streamWriter = new StreamWriter(stream, leaveOpen: true);
            using var jsonWriter   = new JsonNet.JsonTextWriter(streamWriter);

            serializer.Serialize(jsonWriter, entity);
            await jsonWriter.FlushAsync(cancellationToken);

            stream.Position = 0;

            return(stream);
        }