InvalidCastException При использовании ActiveX в проекте C # - PullRequest
1 голос
/ 12 декабря 2011

Уважаемые трейдеры и гуру API,

Заранее благодарим.

Справочная информация:

  1. Visual Studio 2010, язык C #, ActiveX OCX API в качестве эталонапроекта.
  2. Последовательно использовать метод, предоставляемый API, например reqAccountUpdate, и использовать событие для получения информации об обновлении учетной записи.

Проблема:

  1. Теперь я хотел бы запросить данные об одном конкретном финансовом инструменте, таком как пара форекс: AUD.USD.

a.Шаг 1: Унаследовать интерфейс класса IContract от TWSLib. Мой код представлен здесь в виде картинки, а конструктор специфичен для AUD.USD: занятая кошка http://i.minus.com/iyG7RLuSGxiEl.jpg

Как видите, я изменил частнуюОбъект _combolLegs для частного TWSLib.IComboLeg _comboLegs

b.Шаг 2: Я также наследую IComboleg и IUpdateComp от ComboLeg и UpdateComp, и я не присваиваю им значения, поскольку они не имеют отношения к торговле на валютном рынке AUD.USD.

c.Теперь я создаю экземпляр контракта и пытаюсь назначить всю информацию, необходимую для контракта форекс, и отправить свой запрос. занятой кот http://i.minus.com/iXvgbSsp4MbYz.jpg

d.это ошибка во время выполнения.Пожалуйста, проверьте изображение здесь: занятый кот http://i.minus.com/ifFxdfnyvfKF9.jpg

Кажется, что созданный мной экземпляр контракта не может быть принят API как официальный экземпляр IContract.Любая идея от любого гуру .NET?:)

Еще раз большое спасибо,

Смиренный ученик.

Wenhao

Редактировать

о деталях IContract все, что я получил софар

занятый кот http://i.minus.com/iAoY8rCvbC22z.jpg

1 Ответ

1 голос
/ 12 декабря 2011
//Try changing the way that you implement the Interface / Clase where you have 
// -- var auduse = new Contract();

//depending on boxing and unboxing from this point try to reverse it and do the following
IContract iaudUse = new Contract();
//then you would use iaudUse. what ever method in the Interface that you are wanting to use.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...