如何实现 C#4 的 IDynamicObject 接口?

2023-11-26

要在 C# 4.0 中实现“方法缺失”语义等,您必须实现 IDynamicObject:

public interface IDynamicObject
{
  MetaObject GetMetaObject(Expression parameter);
}

据我所知,IDynamicObject 实际上是 DLR 的一部分,因此它并不新鲜。但我找不到太多关于它的文档。

有一些非常简单的示例实现(f.x.here and here),但是有人可以指出我更完整的实现或一些真实的文档吗?

特别是,你到底应该如何处理“参数”参数?


简而言之,元对象负责实际生成将在调用站点运行的代码。为此使用的机制是 LINQ 表达式树,该机制已在 DLR 中得到增强。因此,它不是从对象开始,而是从代表该对象的表达式开始,最终需要返回一个描述要采取的操作的表达式树。

使用此功能时,请记住 CTP 中的 System.Core 版本取自 8 月底的快照。它与 IronPython 的任何特定测试版并没有非常明确地对应。自那时起,DLR 发生了许多变化。

此外,为了与 CLR v2 System.Core 兼容,从 beta 4 或 beta 5 开始的 IronPython 版本现在将 System 命名空间中的所有内容重命名为 Microsoft 命名空间中。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何实现 C#4 的 IDynamicObject 接口? 的相关文章

  • C# 中负货币数字的全局变化格式

    我们有一个大型 ASP NET MVC 项目 其中输出到屏幕的所有数字都被格式化为货币 即 ToString c 但是 负数显示为 例如 decimal d 8 88m Console WriteLine d ToString c outp
  • 随机字符串生成器产生相同结果的问题

    我使用随机字符串生成器 基于此 http stackoverflow com questions 1344221 how can i generate random 8 character alphanumeric strings in c
  • 午夜的 DateChange 事件[重复]

    这个问题在这里已经有答案了 可能的重复 后台工作人员检查什么时候是午夜 https stackoverflow com questions 3053695 background worker check for when its midni
  • 有没有办法判断当前屏幕是否支持触摸? [复制]

    这个问题在这里已经有答案了 可能的重复 是否可以让我的 c wpf 程序知道用户是否有触摸屏 https stackoverflow com questions 5673556 is it possible to let my c shar
  • 如何重写List.Add方法?

    目前我有一个错误日志记录类 如下所示 public class Log public enum LogTypes Info 1 Error 2 Warning 3 public string Message get set public L
  • 并行暴力算法

    所以我在看http codahale com how to safely store a password http codahale com how to safely store a password 并开始好奇在一台功能强大的台式计算
  • 如何添加动态片段选项卡项

    我想添加动态选项卡项目 我有一个片段 它是 FragmentOne 它有一个 TextView 我正在尝试在 foreach 中创建 FragmentOne 并添加到选项卡 我测试了 setupViewPager 中的代码 但它不起作用 如
  • 如何在express中动态渲染/加载页面?

    我需要使用express gt 3 0 框架动态加载 渲染nodejs v1 8 15 中页面的一部分 一般来说 我想创建一个单页应用程序 我在页面顶部有一个带有链接的菜单 单击链接将更改下面的内容 就像 AJAX 页面加载一样 例如 gt
  • 在 Primefaces 中以编程方式创建命令按钮

    我正在尝试创建一个带有输入文本和命令按钮的动态表单 一切正常 但是当我单击命令按钮时 永远不会调用操作侦听器 请提出我做错了什么或者这是否是 PF 或 Mojarra 的错误 代码如下 panel new Panel panel setHe
  • 当页面上已有tinymce实例时,动态添加tinymce编辑器

    这是我已经问过的这个问题的后续 动态添加tinymce编辑器 https stackoverflow com questions 19157574 add a tinymce editor dynamically 我有一个包含编辑器的页面
  • 从代码动态更改多个文本视图的大小(没有“磁盘上”xml 主题)?

    我有 10 个文本视图在我的代码中 我想更改所有代码的字体大小 在我的布局中我使用了 style定义通用属性 但是我不知道一旦布局出现在屏幕上如何从代码中更改它们 我不想做的是更新 AND 对象 但只写在一处 我知道我可以使用应用主题但这假
  • 在调试或发布控制台应用程序中创建文件夹

    我在 vs2010 C 中有一个控制台应用程序 在项目中 我添加了一个文件夹 右键单击项目 添加 gt 文件夹 我希望在编译应用程序 调试或发布 时 然后该文件夹将在调试或发布目录中创建 如果不存在 那可能吗 控制台应用程序是一个守护程序
  • 在 Android 中动态填充年份的微调器?

    我一直在绞尽脑汁试图让它发挥作用 我想动态地将 1900 年到当前年份的年份输入到旋转器中 我认为使用 XML 定义的数组不可能做到这一点 但是我可以使用数组适配器来做到这一点吗 这是我到目前为止所拥有的 ArrayList
  • 使用 WPF 和数据绑定将文件拖放到应用程序窗口中

    我希望能够将文件 例如从桌面或资源管理器 拖放到 WPF 应用程序的主窗口中 我也不希望有任何代码隐藏 即我想使用数据绑定 到目前为止 我测试了 gong wpf dragdrop 它似乎不支持应用程序外部的拖动目标 我可以将文件拖放到主窗
  • SSRS:报告标签位置动态

    我有一份在多个标签中显示客户地址的报告 我的客户使用开窗信封来邮寄 我需要地址标签位置可配置 比如 我将有一个数据库表 用于存储每个客户每个标签的顶部 左侧位置 根据此表 我需要在报告上放置地址标签 我认为 这可以通过表达式实现 但是 Lo
  • Java动态代理-如何引用具体类

    我有一个关于java中动态代理的问题 假设我有一个名为Foo用一种方法execute和班级FooImpl implements Foo 当我创建代理时Foo我有类似的东西 Foo f Foo Proxy newProxyInstance F
  • 如何让窗口最大化时所有控件按比例调整大小?

    当我单击最大化按钮时 窗口最大化 但控件未按比例调整大小 使控件相应调整大小的最佳方法是什么 我正在使用MVVM 这是我的代码
  • AS3中如何知道一个对象是否是动态的

    在Action Script 3中 您可以编写一个定义动态对象的类 MovieClip和Object是两个例子 这个对象可以在运行时修改 我想知道是否有某种方法 当然是在运行时 知道某个对象是否是动态的 PS 没有做这样的事情 functi
  • T[] 和 T[*,*] 有什么区别?

    我的谷歌柔术让我失望了 问题在标题中 有什么区别T and T 我正在寻找 2 2 1 2 部分的答案 外行 或超级架构师 的简单英语解释和示例代码 链接到此区别的正式文档 额外奖励 指向定义此内容的 C 4 规范中的小节和页码 它不在第
  • C# 惰性属性

    我的班级有一个惰性财产 private Lazy

随机推荐