Получить свойства из динамического типа - PullRequest
6 голосов
/ 06 ноября 2010

у меня динамический тип

var f = context.ExecuteStoreQuery<dynamic>("CALL iv_sp_computersbyday();

как мне теперь узнать, какие свойства возвращают динамический тип? я не могу получить доступ, размышляя о динамике.

1 Ответ

1 голос
/ 08 марта 2011

Я не знаком с ExecuteStoreQuery, но есть разница между использованием динамического ключевого слова и объекта, фактически являющегося динамическим объектом.Если это статический объект, который приведен как динамический, то отражение будет работать нормально.Если это динамический объект, то отражение будет возвращать методы, а не те, которые вы ожидаете.Обычно динамический объект будет иметь некоторый способ запрашивать параметры, которые используются для обработки реализации, например, вещи, которые наследуются от DynamicObject, часто реализуют GetDynamicMemberNames, а затем имеют методы для динамического вызова, такие как TryGetMember.Существуют более общие способы сделать динамическое связывание, когда у вас есть имена членов, но это может быть немного сложнее с CallSites и Binder'ами DLR, хотя есть некоторые простые статические методы, которые инкапсулируют все вещи DLR в инфраструктуре с открытым исходным кодом1004 * Экспромт-интерфейс .

...