问题标签 [idynamicobject]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
5 回答
5110 浏览

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

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

据我所知,IDynamicObject 实际上是 DLR 的一部分,所以它不是新的。但是我还没有找到很多关于它的文档。

那里有一些非常简单的示例实现(fx herehere),但是谁能指出我更完整的实现或一些真实的文档?

特别是,您应该如何处理“参数”参数?

0 投票
3 回答
921 浏览

visual-studio-2010 - 我可以在 C# 4 中实现 method_missing 并让它实际返回一个值吗?

我试图根据 IDynamicObject 上浮动的所有 2 篇博客文章来弄清楚如何在 C# 4 中实现 method_missing。

我想要做的是有一个具有存储库的业务逻辑层,如果业务逻辑层缺少该方法,只需调用存储库并传递其结果。所以我有一个看起来像这样的类:

在 RepositoryMetaObect 中,我实现了 Call 方法,如下所示:

(RepositoryMetaObject 的其余代码可能并不有趣,但我已将其包含在此处: http: //pastie.org/312842

我认为的问题是我从来没有对调用的结果做任何事情,我只是返回 MetaObject 本身。

现在当我这样做时:

调用 GetByID,但如果我尝试访问 myCustomer 上的属性,则只是挂起。

有人可以帮忙吗?

完整代码可以在ehre下载:https ://dl.getdropbox.com/u/277640/BusinessLogicLayer.zip

0 投票
1 回答
477 浏览

c#-4.0 - IDynamicObject 实现忽略多个属性调用

我在 C# 4 中实现了 IDynamicObject,返回一个自定义 MetaObject 子类,该子类将简单的属性 getter/setter 分派到 Dictionary。不是火箭科学。

如果我这样做:

然后 'Joe' 被打印到控制台……第二次调用 'Name' setter 永远不会被调用(永远不会进入我的自定义调度程序代码)。

我知道 DLR 会进行呼叫站点缓存,但我认为这不适用于这里。有谁知道发生了什么?

0 投票
2 回答
475 浏览

c# - VS.Net 2010 中缺少 System.Scripting - 我在哪里可以找到它?

我安装了 VS.Net 2010 来使用一些新的 C# 功能,我正在尝试使用 IDynamicObject 接口,但我不能,因为它找不到 System.Scripting 命名空间。我需要安装什么才能得到这个?

谢谢!

0 投票
2 回答
1028 浏览

c# - 找不到 IDynamicObject?

尝试在此处运行示例代码时:http: //www.nikhilk.net/Live-Search-REST-API.aspx

我得到:

错误 52 找不到类型或命名空间名称“IDynamicObject”(是否缺少 using 指令或程序集引用?) E:\repo\NikhilK-dynamicrest-a93707a\NikhilK-dynamicrest-a93707a\Core\DynamicObject.cs 19 43 动态休息

该项目正在运行.net 4 - 这不应该是标准导入的一部分吗?我错过了什么吗?我需要做什么才能完成这项工作?

0 投票
2 回答
1168 浏览

python - DLR 和性能

我打算创建一个尽可能快地执行大量手动指定计算的 Web 服务,并且一直在探索 DLR 的使用。

对不起,如果这很长,但请随意浏览并了解一般要点。

我一直在使用 IronPython 库,因为它使计算非常容易指定。我的工作笔记本电脑在执行以下操作时提供了每秒约 400,000 次计算的性能:

其中 DynamicValue 是一个从预构建数组(在运行时播种和构建)返回随机数的类。

当我创建一个 DLR 类来做同样的事情时,我得到了更高的性能(每秒约 10,000,000 次计算)。课程如下:

并通过执行以下操作以相同的方式调用/测试:

其中 ar1 和 ar2 是预先构建的、运行时播种的随机数数组。

这种方式速度很好,但是指定计算并不容易。我基本上会考虑创建自己的词法分析器和解析器,而 IronPython 已经拥有我需要的一切。

我原以为我可以从 IronPython 获得更好的性能,因为它是在 DLR 之上实现的,而且我可以做得比我得到的更好。

我的示例是否充分利用了 IronPython 引擎?是否有可能从中获得更好的性能?

(编辑)与第一个示例相同,但在 C# 中使用循环,设置变量并调用 python 函数:

其中 pys 是来自 py 的 ScriptScope,而 args1 是预先构建的随机双精度数组。此示例的执行速度比在 Python 代码中运行循环并传入整个数组要慢。

0 投票
1 回答
1575 浏览

c# - C# Winform 中的动态自动更新(到 UI、网格)绑定列表?

我什至不确定我是否正确执行此操作。但基本上我有一个由类/接口构建的对象列表。从那里,我将列表绑定到DataGridViewWindows 窗体 (C#) 上的

这里的列表是一个同步列表,它将自动更新 UI,在这种情况下DataGridView

现在一切正常,但现在我希望列表应该有一个动态对象,即默认情况下该对象将具有两个静态属性(ID、名称),并且在运行时用户将选择剩余的属性。这些应该绑定到数据网格。列表上的任何更新都应自动反映在网格中。

我知道,我们可以使用动态对象,但我想知道,如何解决,

现在IPersonInfo是对象的类型,需要在运行时为这个类型添加动态属性。

你能帮忙吗?