connector.InitializeStorage(csvEntityRegistry, storageRegistry); пересозадает BasketMessageAdapter
~/topic/8848/connector_initializestorage(csventityregistry-storageregistry)-peresozadaet-basketmessageadapter/
Copyright @ StockSharp Platform LLC 2010 - 2024
2024-03-29T07:44:34Z
https://stocksharp.ru/images/logo.png
https://stocksharp.ru/posts/m/41764/
если воспользоваться методом инициализации хранилища у трейдера connector.InitializeStorage(csvEntit...
2017-11-21T18:48:55Z
2017-11-21T18:48:55Z
Иван З.
https://stocksharp.ru/users/6502/
info@stocksharp.ru
если воспользоваться методом инициализации хранилища у трейдера <br /><div class="code"><strong>Код</strong><div class="innercode"><br />connector.InitializeStorage(csvEntityRegistry, storageRegistry);<br /></div></div><br />То согласно исходникам <a target="_blank" href="https://github.com/StockSharp/StockSharp/blob/a2188afaf82a503c1ef60289331bbe94892da037/Algo/Connector.cs
" title="https://github.com/StockSharp/StockSharp/blob/a2188afaf82a503c1ef60289331bbe94892da037/Algo/Connector.cs
">https://github.com/Stock...da037/Algo/Connector.cs
</a><br />пересозадастся BasketMessageAdapter Adapter <br /><div class='spoilertitle'><input type='button' value='Показать спойлер' class='btn btn-primary' onclick="toggleSpoiler(this, 'spolier_80094c6e0e314f61b44c5bb000fd6fa8');" title='Показать спойлер' /></div><div class='spoilerbox' id='spolier_80094c6e0e314f61b44c5bb000fd6fa8' style='display:none'><div class="code"><strong>Код</strong><div class="innercode"><br />/// <summary><br /> /// Initialize <see cref="StorageAdapter"/>.<br /> /// </summary><br /> /// <param name="entityRegistry">The storage of trade objects.</param><br /> /// <param name="storageRegistry">The storage of market data.</param><br /> public void InitializeStorage(IEntityRegistry entityRegistry, IStorageRegistry storageRegistry)<br /> {<br /> if (entityRegistry == null)<br /> throw new ArgumentNullException(nameof(entityRegistry));<br /><br /> if (storageRegistry == null)<br /> throw new ArgumentNullException(nameof(storageRegistry));<br /><br /> _entityRegistry = entityRegistry;<br /> _storageRegistry = storageRegistry;<br /><br /> InitAdapter();//<--------------------------- ТУТ<br /><br /> _entityCache.ExchangeInfoProvider = storageRegistry.ExchangeInfoProvider;<br /> }<br /><br /> private void InitAdapter()<br /> {<br /> Adapter = new BasketMessageAdapter(new MillisecondIncrementalIdGenerator());<--------------------------- ТУТ<br /> }<br /></div></div></div><br /><br />Поэтому если у коннектора уже были настроены адаптеры он их затрет, и соответственно подключение работать не будет. Такое поведение не очевидно, если не ковырять исходники можно долго гадать почему нет подключения к терминалам.<br />Примеры<br />так работает<br /><div class="code"><strong>Код</strong><div class="innercode"><br />var connector = new Connector();<br />connector.InitializeStorage(entityRegistry, storageRegistry);<br />connector.Load(new XmlSerializer<SettingsStorage>().Deserialize(ConnectorFile));<br /></div></div><br />так не работает<br /><div class="code"><strong>Код</strong><div class="innercode"><br />var connector = new Connector();<br />connector.Load(new XmlSerializer<SettingsStorage>().Deserialize(ConnectorFile));<br />connector.InitializeStorage(entityRegistry, storageRegistry);<br /></div></div><br />Больше на баг похоже чем на фичу
Copyright @ StockSharp Platform LLC 2010 - 2024