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