private async Task SerializeToStreamAsync(Stream stream, CancellationToken cancellationToken) { Argument.AssertNotNull(stream, nameof(stream)); try { // Write start boundary. await EncodeStringToStreamAsync(stream, "--" + _boundary + CrLf, cancellationToken).ConfigureAwait(false); // Write each nested content. var output = new StringBuilder(); for (int contentIndex = 0; contentIndex < _nestedContent.Count; contentIndex++) { // Write divider, headers, and content. RequestContent content = _nestedContent[contentIndex].RequestContent; Dictionary <string, string> headers = _nestedContent[contentIndex].Headers; await EncodeStringToStreamAsync(stream, SerializeHeadersToString(output, contentIndex, headers), cancellationToken).ConfigureAwait(false); await content.WriteToAsync(stream, cancellationToken).ConfigureAwait(false); } // Write footer boundary. await EncodeStringToStreamAsync(stream, CrLf + "--" + _boundary + "--" + CrLf, cancellationToken).ConfigureAwait(false); } catch (Exception) { throw; } }
public override async Task WriteToAsync(Stream stream, CancellationToken cancellation) { await JsonWriter.FlushAsync(cancellation).ConfigureAwait(false); await _content.WriteToAsync(stream, cancellation).ConfigureAwait(false); }