Непонятная работа IMarketDataStorage
Здравствуйте!
Разбираюсь с библиотекой. Возникло некоторое затруднение.
Рассмотрим простой код, почти из документации.
Версия S# - 4.1.13
Код
private IMarketDataStorage<Trade> _tradeStorage;
private Security _sec;
...
_sec= new Security {
Id = "TestId",
MinStepSize = 0.1m,
Decimals = 1
};
StorageRegistry storage = new StorageRegistry();
((LocalMarketDataDrive)storage.DefaultDrive).Path = @"E:\TestStockSharpStorage";
_tradeStorage = storage.GetTradeStorage(_sec);
...
private List<Trade> GenereateTrades(int amount) {
List<Trade> trades = new List<Trade>();
var tradeGenerator = new RandomWalkTradeGenerator(_sec, 99) {
IdGenerator = new IdGenerator {
Current = DateTime.Now.Ticks
}
};
tradeGenerator.Init();
for (var i = 0; i < amount; i++) {
var t = tradeGenerator.Generate(DateTime.Today + TimeSpan.FromMinutes(i));
t.Id = i + 1;
t.Status = 2;
var dic = new Dictionary<object, object>();
dic.Add("Parameter", 1.1m);
t.ExtensionInfo = dic;
trades.Add(t);
}
return trades;
}
private void b_CreateTicks_Click(object sender, RoutedEventArgs e) {
var trades = GenereateTrades(100);
_tradeStorage.Save(trades);
}
private void b_ReadData_Click(object sender, RoutedEventArgs e) {
List<Trade> loadedTrades = _tradeStorage.Load(DateTime.Now.Date).ToList();
}
Теперь, если посмотреть trades из b_CreateTicks_Click, то там у каждого экземпляра Trade будут свойства Status == 2 и ExtensionInfo !=null.
Если посмотреть loadedTrades из b_ReadData_Click, то там у каждого экземпляра Trade будут свойства Status == 0 и ExtensionInfo == null. Все остальные свойства будут в порядке.
Почему не сохраняются свойства Status и ExtensionInfo?
Смотрел открытые исходные коды. Разбираться помогают, но не в этом случае.