← Atrás

Проблемы с классом Connector в версии 4.4.17

Всем доброе утро! Взял ночную сборку 4.4.17. В этой версии вместо традиционных коннекторов рекомендуется использовать новый класc Connector,
Я взял тестовый пример SampleConnection из дистрибутива, скомпилировал его, запустил, создал два тестовых подключения к Quik и к MT4. Все заработало. Взял сформированный файл - connection.xml и поместил в свою директорию . Модифицировал свой код путем замены старых коннекторов на новый класс Connector, скомпилировалось без ошибок. Все запустилось. Получился следующий код:

            _tradeGrid.Trader = new Connector();
            _tradeGrid.Trader.Connected += () => this.Dispatcher.BeginInvoke((Action)(() => this.Connected()));
            _tradeGrid.Trader.Disconnected += () => this.Dispatcher.BeginInvoke((Action)(() => this.Disconnected()));
            _tradeGrid.Trader.Error += errors => this.Dispatcher.BeginInvoke((Action)(() => this.Error(errors)));
            _tradeGrid.Trader.NewPortfolios += portfolios => this.Dispatcher.BeginInvoke((Action)(() => this.PortfoliosChanged(portfolios)));
            _tradeGrid.Trader.NewSecurities += securities => this.Dispatcher.BeginInvoke((Action)(() => this.SecuritiesChanged(securities)));
            _tradeGrid.Trader.NewTrades += trades => this.Dispatcher.BeginInvoke((Action)(() => this.TradesChanged(trades)));
            _tradeGrid.Trader.MarketDepthsChanged += marketDepths => this.Dispatcher.BeginInvoke((Action)(() => this.MarketDepthsChanged(marketDepths)));

... string settingsFile = _tradeGrid.LocalStoragePath() + "\" + "connection.xml"; try { if (File.Exists(settingsFile)) { var ctx = new ContinueOnExceptionContext(); ctx.Error += ex => ex.LogError(); using (new Scope<ContinueOnExceptionContext>(ctx)) _tradeGrid.Trader.Load(new XmlSerializer<SettingsStorage>().Deserialize(settingsFile)); } } catch } _tradeGrid.Trader.Connect();

Подключения не происходит , приходит ошибка в обработчик со следующим текстом: {"Необходимо создать хотя бы одно подключение."}

Что я делаю не верно?!

Спасибо!

¿Le resultó útil este tema?

Compartir tema

Comentarios (7)

Iniciar sesión o Crear cuenta, Inicie sesión o regístrese para dejar un comentario

Support
Support

Добрый день

Скажите, при загрузке файла были ли у вас какие-то ошибки (обратите внимание, catch у вас стоит пустым)? Путь к файлу программа корректно определяет и видит его?

LevNNN
LevNNN Autor

Нет, при загрузке файла ошибки не было. Путь корректный, в catch не заходит. Вот это событие срабатывает: _tradeGrid.Trader.Error += errors => this.Dispatcher.BeginInvoke((Action)(() => this.Error(errors)));

Support
Support

Пожалуйста, пришлите текст ошибки.

LevNNN
LevNNN Autor

Спасибо!

Разобрался сам. Не хватало вот этих двух строчек в коде:

            ConfigManager.RegisterService<IExchangeInfoProvider>(new InMemoryExchangeInfoProvider());
            ConfigManager.RegisterService<IMessageAdapterProvider>(new FullInMemoryMessageAdapterProvider(_tradeGrid.Trader.Adapter.InnerAdapters));

После их добавления все заработало.

Fibo
Fibo

LevNNN: Всем доброе утро! Взял ночную сборку 4.4.17. В этой версии вместо традиционных коннекторов рекомендуется использовать новый класc Connector, Я взял тестовый пример SampleConnection из дистрибутива, скомпилировал его, запустил, создал два тестовых подключения к Quik и к MT4. Все заработало. Взял сформированный файл - connection.xml и поместил в свою директорию . Модифицировал свой код путем замены старых коннекторов на новый класс Connector, скомпилировалось без ошибок. Все запустилось. !

Доброго дня! Запускаю ту же сборку, что и у Вас , но в VisualStudia 2015 показывает кучу ошибок (скрин https://stocksharp.ru/file/110372 ) и соответственно не компилируется. Подскажите, пожалуйста, как ее правильно запускать 😂

LevNNN
LevNNN Autor

Я бы посоветовал поставить Visual Studio 2019 и попробовал бы скомпилировать в ней.

Fibo
Fibo

LevNNN: Я бы посоветовал поставить Visual Studio 2019 и попробовал бы скомпилировать в ней.

Спасибо, буду по-разному пробовать )

Вот это, кстати, не помогло " [RU] ВАЖНО: На некоторых системах скаченный ZIP файл блокируется и распакованные из него сборки могут не работать в Visual Studio. До распаковки, нажмите правой кнопкой на ZIP файл, выберите в контекстном меню Свойства, и нажмите в закладке Общие кнопку Разблокировать, если она присуствует в правом нижнем углу окна (если не присутствует, значит разблокировка НЕ требуется). "