Сервер RTD на C# — с чего начать

У меня есть сервер RTD в Excel, который извлекает данные из приложения thinkorswim. Вместо этого я хотел бы вытащить данные на С#. У меня ограниченный опыт программирования, и поэтому я прочитал несколько руководств по реализации RTD-сервера на C#, но большинство из них для меня два продвинутых. Поэтому мне интересно, может ли кто-нибудь предложить некоторые вводные материалы для чтения. Вот пример кода, который я пытаюсь реализовать:

http://awkwardcoder.com/2014/01/24/excel-rtd-client-in-c/

Я скопировал и вставил его в Visual Studio (VS) и назвал класс RtdClient.cs. VS сразу же выделил следующую строку:

ComImport, TypeLibType((short)0x1040)
MarshalAs
MethodImpl

и пишет тип и пространство имен не могут быть найдены.

Я пропустил какие-либо ссылки? Я добавил ссылку на COM типа Tos.RTD, но это не помогло.

Также в реестре нашел папку с Tos.RTD и CLSID. Я предполагаю, что CSLID указывает на тип COM?

В VS Tos.RTD есть пара интерфейсов. В приведенной выше ссылке я не вижу реализации методов этих интерфейсов. Что случилось?

Я также читал следующее: RTD через отражение Я понимаю, что вторая ссылка зависит от отражения. Каковы преимущества/недостатки обоих подходов? Какой из них концептуально более осмыслен?

Как вы можете показаться, я потерялся, поэтому любые предложения будут очень признательны.


person user1700890    schedule 08.02.2015    source источник


Ответы (3)


Сервер RTD явно предназначен для Excel и не поможет вам в C#. Я полагаю, вы могли бы декомпилировать его и посмотреть, как он получает данные из ThinkOrSwim, но я полагаю, что у них есть API, который вы уже могли бы использовать, если вы посмотрите больше.

person Kelly    schedule 08.02.2015
comment
Спасибо, Келли! Как мне его декомпилировать? Я посмотрел в диспетчере задач и в службах и не нашел связанных пунктов. Я предполагаю, что Tos.RTD работает в процессе Excel. Нужно ли декомпилировать процесс Excel? TD Ameritrade также предоставляет отдельный API помимо ThinkOrSwim, но за него хотят денег, а ThinkOrSwim бесплатный. - person user1700890; 08.02.2015
comment
Сервер RTD — это просто DLL на вашем компьютере. Вам нужно будет найти это, а затем использовать что-то вроде Reflector. - person Kelly; 09.02.2015

Я нашел репозиторий Git для ответа Сильво выше. Кажется, он был обновлен совсем недавно.

НАЙТИ ЗДЕСЬ: https://github.com/neberej/tos-client

Приведенный выше код можно найти в папке адаптера.

person Andrew    schedule 21.03.2021

person    schedule
comment
Это работает. Немного нестабилен со многими символами, как прокомментировал оригинальный автор. Я все еще возиться с этим. Это должно заставить вас двигаться. - person Silvo; 20.07.2016