/// <inheritdoc />
		public async Task<object> ConvertFromHttpContentAsync(Type resultType, HttpContent httpContent, CancellationToken cancellationToken = default(CancellationToken))
		{
			if (!CanConvertFromHttpContent(resultType, httpContent))
			{
				throw new NotSupportedException("CanConvertFromHttpContent resulted in false, this is not supposed to be called.");
			}
			Log.Debug().WriteLine("Retrieving the content as MemoryStream, Content-Type: {0}", httpContent.Headers.ContentType);
			var httpBehaviour = HttpBehaviour.Current;

			var memoryStream = new MemoryStream();
			using (var contentStream = await httpContent.GetContentStream().ConfigureAwait(false))
			{
				await contentStream.CopyToAsync(memoryStream, httpBehaviour.ReadBufferSize, cancellationToken).ConfigureAwait(false);
			}
			// Make sure the memory stream position is at the beginning,
			// so the processing code can read right away.
			memoryStream.Position = 0;
			return memoryStream;
		}