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