← Zurück

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

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


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);

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

Kommentare (0)

Anmelden oder Konto erstellen, Melden Sie sich an oder registrieren Sie sich, um einen Kommentar zu hinterlassen

Noch keine Kommentare. Seien Sie der Erste!