Загружаю параметры стратегии так:
if (System.IO.File.Exists("settings.xml")) {
//Загрузка настроек стратегии из существующего конфигурационного файла
var settingsStorage = new XmlSerializer<SettingsStorage>().Deserialize("settings.xml");
}
В строке 3 выдается исключение:
System.ArgumentNullException не обработано Message=Значение не может быть неопределенным. Имя параметра: key Source=mscorlib ParamName=key StackTrace: в System.Collections.Generic.Dictionary
2.Insert(TKey key, TValue value, Boolean add) в System.Collections.Generic.Dictionary2.Add(TKey key, TValue value) в Ecng.Collections.SynchronizedDictionary2.Add(TKey key, TValue value) в Ecng.Collections.SynchronizedDictionary2.Add(KeyValuePair2 item) в Ecng.Serialization.CollectionEntityFactory2.CreateEntity(ISerializer serializer, SerializationItemCollection source) в Ecng.Serialization.EntityFactory1.CreateObject(ISerializer serializer, SerializationItemCollection source) в Ecng.Serialization.Serializer1.Deserialize(SerializationItemCollection source, FieldList fields) в Ecng.Serialization.Serializer1.Deserialize(Stream stream, FieldList fields) в Ecng.Serialization.Serializer1.Deserialize(Stream stream) в Ecng.Serialization.Serializer`1.Deserialize(String fileName) в 4.1.2 все работало.
Comments (8)
Login or Create account, Log in or register to leave a comment
Файл сохранен предыдущей версией?
Да. Направление понятно
Чтобы получить файл настроек в новом формате вызываю как и раньше:
и получаю исключение:
Исключение выходит только в случае сохранения параметров типа Unit
Ошибку повторил используя пример SampleHistoryTesting добавив сериализацию объекта Unit.
Измененный пример SampleHistoryTesting где повторяется ошибка
Ошибка подтверждается7
Unit так просто не сохранить в файл. Там нужно регистрировать загрузчик инструментов для инициализации Unit.Security
И как тогда быть? Возожно привести пример такого загрузчика? Замечу еще раз что в 4.1.2 в старом формате все выгружалось, например:
В новом формате сложные типы (например индикаторы) выгружаются без проблем, например EMA:
почему Unit не выгружается по аналогии: