![]() |
1
4
简短的回答是,元对象是实际生成将在调用站点运行的代码的负责人。它使用的机制是linq表达式树,它在dlr中得到了增强。因此,它不是从一个对象开始,而是从一个表示该对象的表达式开始,最终它需要返回一个描述要执行的操作的表达式树。 在玩这个游戏时,请记住,CTP中System.Core的版本是在8月底从快照中获取的。它与Ironpython的任何特定测试版都不完全对应。从那时起,对DLR进行了许多更改。 此外,为了与clr v2 system.core兼容,从beta 4或beta 5开始的Ironpython版本现在将系统命名空间中的所有内容重命名为Microsoft命名空间。 |
![]() |
2
3
如果希望包含源代码的端到端示例生成一个动态对象,该对象在字典中存储任意属性的值,则 my post "A first look at Duck Typing in C# 4.0" 可能适合你。我写这篇文章是为了展示如何将动态对象强制转换为静态类型的接口。它有一个完整的工作实现,它是一个田园诗般的对象,可以像一个iquack。 如果你需要更多的信息,请在我的博客上联系我,我会尽我所能帮助你。 |
![]() |
3
2
我刚刚在博客上介绍了如何做到这一点: http://mikehadlow.blogspot.com/2008/10/dynamic-dispatch-in-c-40.html |
![]() |
4
0
以下是迄今为止我所发现的: 动态语言运行库当前作为 IronPython project . 所以这是获取信息的最佳地点。 实现支持IDynamicObject的类的最简单方法似乎是从 Microsoft.Scripting.Actions.Dynamic 并重写相关方法,例如调用方法来实现函数调用语义。看起来Microsoft.scripting.actions.dynamic没有包含在CTP中,但是Ironpython2.0中的一个看起来可以工作。 我仍然不清楚“参数”参数的确切含义,但它似乎为动态对象的绑定提供了上下文。 |
![]() |
5
0
本演示文稿还提供了有关DLR的大量信息:
|