В большинстве коннекторов OsEngine используется конвертация потоковых данных из JSON объектов. Поговорим о том, как правильно и не правильно поступать при их использовании.
Библиотека для JSON.
Newtonsoft.Json
Именно эту библиотеку желательно использовать. Никакого смысла плодить в проекте множество преобразователей сообщений в JSON классы нет.
И на сегодняшний день можно говорить о том, что было бы не плохо, если бы она в итоге осталась единственной в нашем проекте для этих целей.
JSON объекты по коннектору должны лежать в папке Entity (Json) этого коннектора.

Нельзя использовать JSON объекты, принадлежащие другим коннекторам.
Это важно, т.к. некоторые биржи прямо пишут, что у них 100 % совместимость с АПИ Binance. Однако на поверку эти заявления – ложь, либо правда частично. Ибо на Бинанс может пройти обновление, которое в итоге будет добавлено в биржу, которая об этом говорит через 2 месяца. И всё это время коннектор работать не будет. А скорее придётся переписать всё…
Все переменные в классе JSON объекта должны быть типа STRING.

Некоторые биржи в описании JSON объектов сразу предлагают ставить типы переменных у JSON объектов вроде double, decimal, int. Однако шлют периодически вместо этих значений null или иные записи вместо этих переменных. Также биржи не учитывают региональные настройки при отсылке типов с плавающей запятой. От чего коннектор будет падать. Таким образом, пока мы не сделали все типы переменных string, мы получали ошибки конвертирования.
Запрет использования Convert.ToDecimal (string value).
Это не безопасно относительно локализации. И весь код, написанный с применением этого метода, может не работать на машине с другим языком. Использовать нужно НАШЕ расширение для string, находящееся вот здесь:

Пример использования нашего, безопасного расширения:

Пост из серии «Коннекторы к OsEngine».
Серия о том, как стать настоящим программистом и изменить свою профессию.
Оглавление и смыслы здесь: https://smart-lab.ru/company/os_engine/blog/959953.php
Комментарии открыты для друзей, добавляйтесь!
OsEngine: https://github.com/AlexWan/OsEngine
FAQ: https://o-s-a.net/os-engine-faq
Поддержка OsEngine: https://t.me/osengine_official_support
Курилка, общаемся здесь: https://t.me/o_s_a_chat
Регистрируйся в АЛОР и получай бонусы: https://www.alorbroker.ru/open
Сайт АЛОР БРОКЕР: https://www.alorbroker.ru
Раздел «Для клиентов»: https://www.alorbroker.ru/openinfo/for-clients
Подробнее https://smart-lab.ru/compan...

