Мы реализовали сторонний API, используя предоставленный нам WSDL.
Реализация в C# с использованием встроенной утилиты ссылки на сервис Visual Studio (она берет файл WSDL и создает файл ссылки на сервис). со всеми службами и классами)
в файле reference.cs есть член с именем «CreateDate», имеющий тип DateTime.
Проблема в том, что сторонний API отправляет нам это данные элемента с миллисекундами в формате 3 места после точки, но когда я пытаюсь отправить эти данные обратно в веб-службу, среда WSDL удаляет последний ноль из элемента миллисекунды
, например:
сторонний API отправляет "CreateDate =" 2020-03-26T07: 49: 05.640 + 00: 00 ". Каркас. net сериализует эти данные в классы c#. Пока все хорошо. сохраните этот класс, чтобы мы могли отправить его позже в веб-службу, которую мы создаем для веб-службы, с указанием даты и времени, действительной на данный момент (см. скриншот отладчика)
когда я "ловлю" передаваемый RAW-запрос, значение даты-времени недопустимо (см. Скриншот)
(поскольку я не могу использовать fiddler для технических проблем, я перехватываю эти запросы путем реализации класса MessageInspector и использования отладчика для проверки System.ServiceModel.Channels.Message перед его отправкой в веб-службу)
Когда я отправляю эти данные, я получаю сообщение об ошибке от веб-службы, так как они имеют проверку в этом поле.
где-то, после моего контроля, . net serializer (я полагаю) преобразует класс DateTime в строку \ поток с другим значением
, любое предложение поможет
, спасибо