Сериализация (xml) класса Security
Atom
02.04.2019
Дмитрий_


Добрый день Имею Quik Lua коннектор. Примерно 1 - 1,5 года назад сериализация класса Security проходила успешно.

Провел сериализацию сегодня и получил 8 ошибок: 1 InvalidOperationException: There was an error reflecting property 'Board'. 2 InvalidOperationException: There was an error reflecting type 'StockSharp.BusinessEntities.ExchangeBoard'. 3 InvalidOperationException: There was an error reflecting property 'WorkingTime'. 4 InvalidOperationException: There was an error reflecting type 'StockSharp.Messages.WorkingTime'. 5 InvalidOperationException: There was an error reflecting property 'Periods'. 6 InvalidOperationException: There was an error reflecting type 'StockSharp.Messages.WorkingTimePeriod'. 7 InvalidOperationException: Cannot serialize member 'StockSharp.Messages.WorkingTimePeriod.SpecialDays' of type 'System.Collections.Generic.IDictionary2[[System.DayOfWeek, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089],[Ecng.ComponentModel.Range1[[System.TimeSpan, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]][], Ecng.ComponentModel, Version=1.0.0.0, Culture=neutral, PublicKeyToken=b10e79ed0227b515]]', see inner exception for more details. 8 NotSupportedException: Cannot serialize member StockSharp.Messages.WorkingTimePeriod.SpecialDays of type System.Collections.Generic.IDictionary2[[System.DayOfWeek, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089],[Ecng.ComponentModel.Range1[[System.TimeSpan, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]][], Ecng.ComponentModel, Version=1.0.0.0, Culture=neutral, PublicKeyToken=b10e79ed0227b515]] because it is an interface.

Это баг или невозможность сериализации реализовано с определенной целью?


Теги:


Спасибо:


Support

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


Добрый день

Сохранение и восстановление инструментов сделано штатными средствами нашего хранилища.

Спасибо: Дмитрий_

Дмитрий_

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


Support: Добрый день

Сохранение и восстановление инструментов сделано штатными средствами нашего хранилища.

var forced = true; storageRegistry.GetSecurityStorage().Save(security, forced);

Уточнение. Если параметр forced метода Save = true - то,новый security замещает старый, уже имеющийся в хранилище?

Спасибо:

Support

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


Второй параметр нужен для обнуления данных, так как хранилище только обновляет данные, игнорируя пустые значения. В вашем случае вам этот параметр не нужен.

Спасибо:

Дмитрий_

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


Support: Второй параметр нужен для обнуления данных, так как хранилище только обновляет данные, игнорируя пустые значения. В вашем случае вам этот параметр не нужен.

Чтобы разобраться.

  1. Если второй параметр false, то инструмент обновляется - обновляются свойства инструмента.
  2. Если второй параметр true, то инструмент обнуляется - удаляется инструмент их хранилища и добавляется инструмент.
Спасибо:

Support

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


Параметра force не влияет на обновление или удаление инструментов. Это принудительное обновление ранее записанных данных.

Спасибо:

Дмитрий_

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


Support: Параметра force не влияет на обновление или удаление инструментов. Это принудительное обновление ранее записанных данных.

force = true - данные обновляться будут, force = false- данные обновляться не будут.

Или "обновление" и "принудительное обновление" - это разные обновления?

Сохраняю инструменты (при запуске приложения) и при force = true и при force = false - в файл instruments.csv сохраняются уже имеющиеся инструменты (инструменты в файле дублируются)

Спасибо:

Support

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


Добрый день

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

Спасибо: Дмитрий_

Дмитрий_

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


Добрый день

Параметр force обнуляет данных, если значения инструменты пустые. В противном случае, обновляются только не пустые значения. Уточнение: force = true - чтобы не игнорировались пустые значения (null) инструмента

Спасибо:


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

loading
clippy