connector.InitializeStorage(csvEntityRegistry, storageRegistry); пересозадает BasketMessageAdapter

connector.InitializeStorage(csvEntityRegistry, storageRegistry); пересозадает BasketMessageAdapter
Atom
11/21/2017
Иван З.


если воспользоваться методом инициализации хранилища у трейдера


connector.InitializeStorage(csvEntityRegistry, storageRegistry);

То согласно исходникам https://github.com/StockSharp/StockSharp/blob/a2188afaf82a503c1ef60289331bbe94892da037/Algo/Connector.cs пересозадастся BasketMessageAdapter Adapter


/// <summary>
		/// Initialize <see cref="StorageAdapter"/>.
		/// </summary>
		/// <param name="entityRegistry">The storage of trade objects.</param>
		/// <param name="storageRegistry">The storage of market data.</param>
		public void InitializeStorage(IEntityRegistry entityRegistry, IStorageRegistry storageRegistry)
		{
			if (entityRegistry == null)
				throw new ArgumentNullException(nameof(entityRegistry));

			if (storageRegistry == null)
				throw new ArgumentNullException(nameof(storageRegistry));

			_entityRegistry = entityRegistry;
			_storageRegistry = storageRegistry;

			InitAdapter();//<--------------------------- ТУТ

			_entityCache.ExchangeInfoProvider = storageRegistry.ExchangeInfoProvider;
		}

		private void InitAdapter()
		{
			Adapter = new BasketMessageAdapter(new MillisecondIncrementalIdGenerator());<--------------------------- ТУТ
		}

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


var connector = new Connector();
connector.InitializeStorage(entityRegistry, storageRegistry);
connector.Load(new XmlSerializer<SettingsStorage>().Deserialize(ConnectorFile));

так не работает


var connector = new Connector();
connector.Load(new XmlSerializer<SettingsStorage>().Deserialize(ConnectorFile));
connector.InitializeStorage(entityRegistry, storageRegistry);

Больше на баг похоже чем на фичу




Thanks: Support




Attach files by dragging & dropping, , or pasting from the clipboard.

loading
clippy