Обмениваюсь документами со сторонним сервисом. Все документы в формате XML. Если что-то идет не так, сервис сообщает об ошибке также с помощью XML специального формата (у меня есть его xsd-схема). Форматов документов очень много, но при каждом запросе я точно знаю какой формат будет иметь ответ (если не будет ошибки).
Я написал следующий метод для проверки успешности запроса:
void CheckErrorSchema(string text)
{
var settings = new XmlReaderSettings { ValidationType = ValidationType.Schema };
using (var sr = new StringReader(Properties.Resources.ErrorSchema)) // xsd-схема сообщения об ошибке
using (var xr = XmlReader.Create(sr))
settings.Schemas.Add(null, xr);
using (var sr = new StringReader(text))
using (var xr = XmlReader.Create(sr, settings))
{
try
{
var doc = XDocument.Load(xr);
throw new MyException(...);
}
catch (XmlSchemaValidationException) { }
}
}
Т.е. после получения ответа, я вызываю этот метод и если он выполнился нормально, то десериализую ответ в нужный мне формат.
Мне не нравится, что сейчас я загружаю документ и если его загрузка бросает исключение, то я его подавляю и считаю что всё нормально. А если документ загрузился без проблем, то я бросаю исключение. Ошибки бывают достаточно редко (порядка 1% случаев).
Как можно это оптимизировать?
Виртуальный выделенный сервер (VDS) становится отличным выбором
Через функцию "addNewOrder" клиент получает модель для вставки, а что бы ее вставить в страницу использует ajax что бы получить PartialView в виде html
Есть проект типаNETStandart 2