Jschemavalidating Readerer - OOM при обработке больших токеновC#

Место общения программистов C#
Ответить
Anonymous
 Jschemavalidating Readerer - OOM при обработке больших токенов

Сообщение Anonymous »

Мы столкнулись с некоторыми проблемами с памятью при проверке JSON. 9.0.304 < /li>
< /ul>
Для проверки у нас есть этот код: < /p>

Код: Выделить всё

var validationResult = new Lazy();
var streamReader = new StreamReader(stream);
var jsonReader = new JsonTextReader(streamReader);
var validatingReader = new JSchemaValidatingReader(jsonReader);
validatingReader.Schema = schema;

validatingReader.ValidationEventHandler += (o, a) =>
{
// simplified error handling...
Console.WriteLine(a.Message)
};

while (await validatingReader.ReadAsync(cancellationToken)){
// force reader through stream...
}
< /code>
Допустим, у нас есть эта схема: < /p>
{
"type": "object",
"additionalProperties": false,
"required": [
"demoId",
],
"properties": {
"demoId": {
"type": "string",
"maxLength": 50
}
}
}
< /code>
И мы отправляем несколько непропорциональных JSON в проверку: < /p>
{
"demoId": "... Some very large string token - lets say 10M chars ..."
}
Когда я отлаживал эту ситуацию, когда инициируется valyationEventhandler , сообщение об ошибке содержит целые 10м Chars.
Кроме того Память.>

Подробнее здесь: https://stackoverflow.com/questions/797 ... rge-tokens
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»