Загружаю параметры стратегии так:
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 все работало.
Kommentare (8)
Anmelden oder Konto erstellen, Melden Sie sich an oder registrieren Sie sich, um einen Kommentar zu hinterlassen
Файл сохранен предыдущей версией?
Да. Направление понятно
Чтобы получить файл настроек в новом формате вызываю как и раньше:
и получаю исключение:
Исключение выходит только в случае сохранения параметров типа Unit
Ошибку повторил используя пример SampleHistoryTesting добавив сериализацию объекта Unit.
Измененный пример SampleHistoryTesting где повторяется ошибка
Ошибка подтверждается7
Unit так просто не сохранить в файл. Там нужно регистрировать загрузчик инструментов для инициализации Unit.Security
И как тогда быть? Возожно привести пример такого загрузчика? Замечу еще раз что в 4.1.2 в старом формате все выгружалось, например:
В новом формате сложные типы (например индикаторы) выгружаются без проблем, например EMA:
почему Unit не выгружается по аналогии: