Проблемы с классом Connector в версии 4.4.17
Atom Ответить
09.01.2020


Всем доброе утро!
Взял ночную сборку 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();

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

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

Спасибо!



Спасибо:




7 Ответов
Support

Фотография
Дата: 09.01.2020
Ответить


Добрый день

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

LevNNN

Фотография
Дата: 09.01.2020
Ответить


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

Support

Фотография
Дата: 11.01.2020
Ответить


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

LevNNN

Фотография
Дата: 11.01.2020
Ответить


Спасибо!

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

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

После их добавления все заработало.
Автор топика
Спасибо:

Fibo

Фотография
Дата: 12.01.2020
Ответить


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


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

image491.png 99 KB (3)
Спасибо:

LevNNN

Фотография
Дата: 12.01.2020
Ответить


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

Fibo

Фотография
Дата: 12.01.2020
Ответить


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


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

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


Добавить файлы через драг-н-дроп, , или вставить из буфера обмена.

loading
clippy