从动态类型获取属性

6
我有一个动态类型。
var f = context.ExecuteStoreQuery<dynamic>("CALL iv_sp_computersbyday();

我该如何知道动态类型返回了哪些属性?我无法通过反射来访问动态类型。
1个回答

1

我不熟悉ExecuteStoreQuery,但使用动态关键字和实际上是动态对象之间存在差异。如果它是一个静态对象,只是被强制转换为动态对象,那么反射将正常工作。如果它是一个动态对象,则反射将返回方法,但不是您期望的方法。通常,动态对象将有一些查询用于处理实现的参数的方式,例如从DynamicObject继承的东西通常实现GetDynamicMemberNames,然后具有动态调用的方法,如TryGetMember。一旦您拥有成员名称,就有更一般的方法来执行动态绑定,但是使用DLR CallSites和Binders可能有点困难,尽管在开源框架Impromptu-Interface中有一些简单的静态方法封装了所有DLR内容。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接