Non ho familiarità con ExecuteStoreQuery ma c'è una differenza tra l'utilizzo della parola chiave dinamica e l'oggetto che in realtà è un oggetto dinamico. Se si tratta di un oggetto statico appena lanciato come dinamico, la riflessione funzionerà perfettamente. Se si tratta di un oggetto dinamico, la riflessione restituirà i metodi solo non quelli che ci si aspetterebbe. Generalmente un oggetto dinamico avrà la possibilità di interrogare i parametri utilizzati per gestire l'implementazione, ad esempio le cose che ereditano da DynamicObject
spesso implementano GetDynamicMemberNames
e quindi hanno metodi per richiamare dinamicamente come TryGetMember
. Esistono metodi più generici per eseguire il binding dinamico una volta che si hanno i nomi dei membri, ma può essere un po 'troppo da usare con i CallSite ei Raccoglitori DLR, sebbene vi siano alcuni semplici metodi statici che incapsulano tutte le cose DLR nel framework open source Impromptu-Interface .