← Zurück

Сериализация (xml) класса Security

Добрый день Имею 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.

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

Kommentare (8)

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

Support
Support

Добрый день

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

Дмитрий_
Дмитрий_
Дмитрий_ Autor

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

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

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

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

Support
Support

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

Дмитрий_
Дмитрий_ Autor

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

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

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

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

Дмитрий_
Дмитрий_ Autor

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

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

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

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

Support
Support

Добрый день

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

Дмитрий_
Дмитрий_
Дмитрий_ Autor

Добрый день

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