问题标签 [dynamicobject]

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 投票
2 回答
264 浏览

.net - 通过 DynamicObject 实现 void 方法时的结果值

我正在查看用于覆盖以实现动态方法绑定的TryInvokeMember示例DynamicObject。签名如下

显然result是用来将结果传回给调用者的。

由于没有 out 参数就没有重载TryInvokeMemberresult我假设这个方法也必须处理 void 方法。在那种情况下,是否有关于result应该设置什么的指导方针?

DynamicObject设置为 null的默认实现result,这也是我的默认选择,但我无法在示例中找到任何提及。有没有这方面的指导方针?结果是什么重要吗?

0 投票
1 回答
1350 浏览

inheritance - 从继承自 DynamicObject 的类继承

我正在试验 C# 4.0 的动态对象模型。

我创建了一个名为“Block”的抽象类,它继承自 DynamicObject。它覆盖 TryGetMember 和 TrySetMember。

此外,我创建了一个名为“Brush”的可用类,它继承自“Block”。我希望它可以动态使用。

但是当我从它创建一个动态对象并尝试访问一个运行时绑定的成员时,它向我抛出一个异常,告诉我该成员不存在。抽象父类的重写 TryGetMember 或 TrySetMember 方法不会被调用。

这种行为是可以预期的吗?

谢谢!

0 投票
2 回答
9792 浏览

wpf - 将 DynamicObject 绑定到具有自动列生成的 DataGrid?

我仍在尝试使用 DynamicObjects。现在我需要一些信息:我正在尝试将从 DynamicObject 继承的对象绑定到 WPF DataGrid(不是 Silverlight)。

如何让 DataGrid 从通常在运行时生成的对象的可用公共属性中自动创建其列?这实际上可能吗?

0 投票
1 回答
27727 浏览

c#-4.0 - C# 4.0 Dynamic 与 Expando ......它们适合哪里?

我正在尝试学习 C# 4.0 附带的所有新功能。我无法理解DynamicObjectExpandoObject类型之间的区别。DynamicObject例如,当您想从 Python 脚本访问变量以及ExpandoObject与 COM/Office 对象交谈时,它似乎被使用了。我对吗?它们的用途有什么区别?

0 投票
4 回答
53783 浏览

c# - ExpandoObject、DynamicObject 和 dynamic 的区别

System.Dynamic.ExpandoObjectSystem.Dynamic.DynamicObject有什么区别dynamic

您在哪些情况下使用这些类型?

0 投票
1 回答
1395 浏览

c# - 是否可以为实体对象动态添加属性?

是否可以在运行时将属性添加到由实体框架生成的类?我成功地使用从 DynamicObject 继承的 POCO 类,但是当我尝试对我的实体类做同样的事情时,我收到错误“[类名]的部分声明不能指定不同的基类”。

0 投票
1 回答
794 浏览

c# - 将动态对象解析委托给其他实例

我目前在 .NET 2.0 应用程序中托管 IronPython。

我想创建一个类(在 C# 中),其实例可以通过插件实例“扩展”。这意味着,在我的实例上无法解析的每个成员访问都应转发到提供该成员的适当插件实例。然后,我的对象将保存一个带有这些插件实例的私有容器。

AFAICS,去那里的方法是通过从 DynamicObject 派生。到目前为止,第一步很简单,只要 python 代码使用我实例的“未知”成员,就会调用 TryGetMember。我还可以返回可以从 python 代码中使用的对象和委托。

但是,不知何故,当我尝试使用 DLR 对插件实例和 e 执行“子搜索”时,我被卡住了。G. 以 IronPython 期望的方式返回插件实例的方法或属性。

欢迎任何提示!

谢谢!

编辑:对不起,我最初的问题表述得不够清楚。这里有几点:

  • 该解决方案必须使用普通的 .NET 2.0 运行,不允许使用 .NET 3.5 或 4.0。
  • 插件列表是每个实例的(这意味着每个实例可以有一个不同但不可变的插件对象列表)。
  • 插件对象应该是映射了所有公共成员(或至少方法和属性)的普通 C# 对象。
  • 碰撞检测并不重要。

再次感谢。

0 投票
3 回答
55260 浏览

c# - 循环 DynamicObject 属性

我试图了解 DynamicObject 类型。发现这篇 MSDN 文章对于如何创建和使用 DynamicObject 非常简洁明了:

http://msdn.microsoft.com/en-us/library/system.dynamic.dynamicobject.aspx

本文包含一个简单的 DynamicDictionary 类,它继承自 DynamicObject。

现在我想遍历我动态创建的 DynamicObject 属性:

显然,这是行不通的。我想学习如何在不改变我的 DynamicDictionary 类的情况下做到这一点,因为我真的想学习如何将它用于从 DynamicObject 继承的各种现有对象。

需要反射吗?我肯定错过了什么...

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 投票
3 回答
1331 浏览

php - php动态类继承

我知道我可以通过执行在运行时生成一个类

这样我可以使用

如果想让 $obj 从现有类继承怎么办?

我想要实现的目标: 我在 github ( https://github.com/balanza/paris ) 上分叉了 paris 项目。这是一个活跃的记录类。我想知道我需要为每个对象声明一个类,即使它是空的:

我想我可能会使用动态对象来避免这种无聊的东西。