ServiceStack.Text Удаляет поток ввода - PullRequest
0 голосов
/ 06 мая 2018

При десериализации данных из потока ServiceStack.Text закрывает входной поток. Поскольку на Github нет системы отслеживания проблем, а их веб-сайт ссылается на SO, я выкладываю этот вопрос здесь. Звонок на

 JsonSerializer.DeserializeFromStream<T>(stream);

удалит входной поток, который, по моему мнению, является ошибкой, поскольку могут быть другие данные, следующие только с префиксом объекта. Никакой другой сериализатор, о котором я знаю, не ведет себя так.

1 Ответ

0 голосов
/ 26 июня 2018

Последний v5.1.1 ServiceStack.Text на MyGet больше не должен автоматически закрывать потоки.

Также ServiceStack.Text был переписан для использования нового ReadOnlySpan<char> .NET, к которому можно получить прямой доступ с помощью:

ReadOnlySpan<char> jsonSpan = json.AsSpan();
var dto = JsonSerializer.DeserializeFromSpan<T>(jsonSpan);

Также имеется новый API для асинхронного чтения из потоков:

var dto = await JsonSerializer.DeserializeFromStreamAsync<T>(stream);
...