← 返回

Не работает ExtensionInfo

Уважаемые разработчики!

Пытаюсь переехать с S# 4.1.1 на 4.1.7 (codeplex trunk)

Летят эксепшены "The given key was not present in the dictionary"

Код банальный, при переезде никак не менялся:

var columns = this.Trader.SecuritiesTable.Columns;
columns.Add(DdeSecurityColumns.Yield);

var ecolumns = this.Trader.EquityPortfoliosTable.Columns;
ecolumns.Add(DdeEquityPortfolioColumns.BlockedCurrency);

При данных обращениях к этим данным получаю исключения:


sec.ExtensionInfo[DdeSecurityColumns.Yield]
portfolio.ExtensionInfo[DdeEquityPortfolioColumns.BlockedCurrency]

Стек-трейсов нет, т.к. это обращение непосредственно в сам словарь...

Посмотрел содержимое словаря для sec- в нем нет ключа Yield.

Аналогично для portfolio c BlockedCurrency.

Есть ли какие-либо новые ограничения по использованию дополнительных полей в таблицах?

本主题对您有帮助吗?

分享主题

评论 (6)

登录创建账户, 登录或注册以发表评论

esper
esper

Пример SampleDdeExtendedInfo так же не работает?

Den
Den 作者

esper: Пример SampleDdeExtendedInfo так же не работает?

Я помучал свое приложение. У securityне появляются в ExtendedInfo поля DdeSecurityColumns.CloseYield, DdeSecurityColumns.LegalClosePrice, DdeSecurityColumns.Yield У портфеля по деривативам DdeDerivativePortfolioColumns.PositionsPrice, DdeDerivativePortfolioColumns.MarketCommission

Там есть какие-то проверки и ограничения?

esper
esper

Den: Я помучал свое приложение. У securityне появляются в ExtendedInfo поля DdeSecurityColumns.CloseYield, DdeSecurityColumns.LegalClosePrice, DdeSecurityColumns.Yield У портфеля по деривативам DdeDerivativePortfolioColumns.PositionsPrice, DdeDerivativePortfolioColumns.MarketCommission

Там есть какие-то проверки и ограничения?

Попробуйте последнюю версию с кодеплекса, там есть фикс.

Den
Den 作者

esper: Попробуйте последнюю версию с кодеплекса, там есть фикс.

да, svn up помог. Спасибо!

esper
esper

Попробуйте последнюю версию с кодеплекса.

Axell
Axell

Появилась аналогичная проблема при переходе с S# 4.1.9 на 4.1.15 Код:

trader.EquityPortfoliosTable.Columns.Add(DdeEquityPortfolioColumns.RemainCurrency);
trader.EquityPortfoliosTable.Columns.Add(DdeEquityPortfolioColumns.AvailableBuyNonMarginCurrency);

при обращении:

portfolio.ExtensionInfo[DdeEquityPortfolioColumns.RemainCurrency]
portfolio.ExtensionInfo[DdeEquityPortfolioColumns.AvailableBuyNonMarginCurrency]

получаем "The given key was not present in the dictionary"

При откате на 4.1.9 всё работает