LoadState(Strategy ,SettingsStorage )
Atom
13.06.2013
Kazai Mazai


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

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

Код
   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 атрибут

Код
 [RelationSingle(IdentityType = typeof(string))]

Теги:


Спасибо:


esper

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


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

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

Kazai Mazai

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


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

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


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

esper

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


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


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

loading
clippy