Json.Net ne parvient pas à sérialiser en un flux, mais fonctionne très bien en sérialisant à une chaîne

En interne, JsonConvert.SerializeObject(obj, Formatting.Indented) se résume à

JsonSerializer jsonSerializer = JsonSerializer.Create(null);
StringWriter stringWriter = new StringWriter(new StringBuilder(256), (IFormatProvider) CultureInfo.InvariantCulture);
using (JsonTextWriter jsonTextWriter = new JsonTextWriter((TextWriter) stringWriter))
{
  jsonTextWriter.Formatting = formatting;
  jsonSerializer.Serialize((JsonWriter) jsonTextWriter, value);
}
return stringWriter.ToString();

Cela fonctionne bien. Cependant, si je ne les suivants:

string json;

JsonSerializer jsonSerializer = JsonSerializer.Create();

using (var stream = new MemoryStream())
using (var streamWriter = new StreamWriter(stream, Encoding.UTF8))
using (var jsonWriter = new JsonTextWriter(streamWriter))
{
    serializer.Serialize(jsonWriter, cmd);

    stream.Position = 0;
    using (var reader = new StreamReader(stream))
    {
        json = reader.ReadToEnd();
    }
}

Alors la valeur de json est "". Quelqu'un peut-il m'indiquer mon erreur?

source d'informationauteur moswald