Сериализация (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.IDictionary`2[[System.DayOfWeek, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089],[Ecng.ComponentModel.Range`1[[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.IDictionary`2[[System.DayOfWeek, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089],[Ecng.ComponentModel.Range`1[[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