просто приведите его к object
:
Type type = ((object)readings).GetType();
Быть dynamic
означает, что все вызовы могут быть перехвачены, но это трюк с компилятором, а не внутренняя особенность типа. Приведение его к object
означает, что компилятор прекращает делать это . За кулисами dynamic
- это просто причудливое слово для object
в любом случае .
Обратите внимание, однако, что обычно плохая идея смешивать отражение (GetType()
) иdynamic
;в то время как объекты могут работать как dynamic
(повторно отображая API отражения как dynamic
), это не всегда так, и многие (большинство?) реализаций dynamic
представляются полностью искусственнымичлены, которые не существуют с точки зрения отражения. Это своего рода основной пункт из dynamic
, с "о, это также позволяет вам быть ленивым и разговаривать с типами, не зная их типа", просто удобный побочный эффект.