Сохранение и загрузка настроек
Для сохранения и загрузки настроек стратегии используются переопределения методов Strategy.Save(Ecng.Serialization.SettingsStorage storage ) и Strategy.Load(Ecng.Serialization.SettingsStorage storage ) соответственно.
public override void Load(SettingsStorage settings)
{
if (settings.Contains("UsedVolume"))
Id = settings.GetValue<Guid>("UsedVolume");
if (settings.Contains("Ticks"))
Name = settings.GetValue<string>("Ticks");
if (settings.Contains("SpreadVolume"))
Volume = settings.GetValue<decimal>("SpreadVolume");
base.Load(settings);
}
public override void Save(SettingsStorage settings)
{
settings.SetValue("UsedVolume", UsedVolume);
settings.SetValue("Ticks", Ticks);
settings.SetValue("Volume", Volume);
settings.SetValue("SpreadVolume", SpreadVolume);
base.Save(settings);
}
Для сохранения и загрузки настроек из внешнего файла можно воспользоваться соответственно сериализацией и десериализацией, реализованной в S#.
var newStrategy = new MarketProfileStrategy();
if (File.Exists("marketProfile.json"))
{
//Загрузка настроек стратегии из существующего конфигурационного файла
var settingsStorage = new JsonSerializer<SettingsStorage>().Deserialize("marketProfile.json");
newStrategy.Load(settingsStorage);
}
Для сохранения настроек во внешний файл необходимо внести изменения в метод Strategy.Save(Ecng.Serialization.SettingsStorage storage ), описанный ранее.
public override void Save(SettingsStorage settings)
{
settings.SetValue("UsedVolume", UsedVolume);
settings.SetValue("Ticks", Ticks);
settings.SetValue("Volume", Volume);
settings.SetValue("SpreadVolume", SpreadVolume);
base.Save(settings);
//Сохраняем настройки в файл
new JsonSerializer<SettingsStorage>().Serialize(settings, "marketProfile.json");
}