我有一个动态类型
var f = context.ExecuteStoreQuery<dynamic>("CALL iv_sp_computersbyday();
我现在如何才能返回动态类型的属性?我不能通过对动态的反思来访问。
发布于 2011-03-08 02:00:10
我不熟悉ExecuteStoreQuery,但是使用dynamic关键字和对象实际上是动态对象是有区别的。如果它是一个静态对象,只是被强制转换为动态对象,那么反射就会工作得很好。如果它是一个动态对象,那么反射将返回的方法并不是你所期望的。通常,动态对象将有某种方法来查询用于处理实现的参数,例如,从DynamicObject
继承的对象通常实现GetDynamicMemberNames
,然后具有可动态调用的方法,如TryGetMember
。一旦有了成员名称,就有更通用的方法来进行动态绑定,但是对于DLR和绑定器来说可能有点麻烦,尽管在开源框架Impromptu-Interface中有一些简单的静态方法可以封装所有的CallSites内容。
https://stackoverflow.com/questions/4110461
复制