LoadState(Strategy ,SettingsStorage )


LoadState(Strategy ,SettingsStorage )
Atom
6/13/2013


При LoadState выдает Argument Null Exception для Security. Которое выбрасывается при ProcessNewOrders, которое в AttachOrder.

Делаю все по инструкциям.

Code
   var orderDictionary = new Dictionary<Order, IEnumerable<MyTrade>>();
            foreach (var order in Orders)
            {
               orderDictionary.Add(order,  order.GetTrades());
            }
            if (storage.ContainsKey("Orders")) storage["Orders"] = orderDictionary;
            else storage.Add("Orders", orderDictionary);
            
            if (storage.ContainsKey("Positions")) storage["Positions"] = PositionManager.Positions;
            else storage.Add("Positions", PositionManager.Positions);

            var xmlSerializer = new XmlSerializer<SettingsStorage>();
            xmlSerializer.Serialize(storage, Name + "_settings.xml");
            base.Save(storage);
          




C XML все норм,записывается и считывается, кроме, как раз поля Security у ордеров.
Оно пишется не как объект,а просто Id инструмента, и при считывании потом превращается в null у ордера, что и вызывает исключение.


Подскажите, как победить?

P.S. Не связано ли это с тем, что у ордера у поля Security атрибут

Code
 [RelationSingle(IdentityType = typeof(string))]

Tags:


Thanks:


esper

Avatar
Date: 6/13/2013
Reply


Kazai Mazai Go to
Подскажите, как победить?

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

Kazai Mazai

Avatar
Date: 6/13/2013
Reply


esper Go to
Kazai Mazai Go to
Подскажите, как победить?

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


Я похожие костыли уже прикрутил сделав что-то похожее на LoadState. Думал что "из коробки" как то делается, а я не знаю как.
Ну окей, спасибо.
Thanks:

esper

Avatar
Date: 6/13/2013
Reply


Из коробки это должно работать с БД, в которой есть таблица с информацией по инструментам.
Thanks:


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

loading
clippy