问题标签 [expandoobject]

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 投票
1 回答
3517 浏览

c# - 是否可以使用 ExpandoObject 创建运行时属性?

通常,我们可以创建这样的属性,

就我而言,直到运行时我才会知道诸如“价格”或“价值”之类的属性。如何,我可以创建这样的动态属性。就像是,

无论如何要实现这种行为。

0 投票
2 回答
888 浏览

c# - 没有参数的方法如何分配给 ExpandoObject?

我正在尝试使用此签名将方法(函数)分配给 ExpandoObject:

我试图做类似下面这段代码的事情,但它不能编译:

不幸的是,我无法更改 CreateList 签名,因为它会破坏向后兼容性,因此重写它不是一种选择。我试图通过使用委托来解决这个问题,但在运行时,我得到了一个“不能调用非委托类型”的异常。我想这意味着我没有正确分配代表。我需要帮助使语法正确(代表示例也可以)。谢谢!!

0 投票
2 回答
2541 浏览

.net - .net expando 对象和 LINQ。可能与否?

我有一个名为 products 的简单扩展对象列表。

我在运行时向这些对象添加各种字段(例如颜色或大小)

如何根据动态字段在此列表上编写 LINQ 查询?

使用经典的对象列表,我可以编写这样的 LINQ 查询:

但是使用expandos,如何实现这一点,知道我事先不知道字段的名称(可能是重量大小或其他任何东西)?

先感谢您。

0 投票
7 回答
17351 浏览

.net - 将 GridView 绑定到 Dynamic 或 ExpandoObject 对象

我正在使用 Rob Conery 的 Massive ORM,但我无法将结果绑定ExpandoObjectGridView.

我确实发现了另一个 Stackoverflow 问题,该问题建议使用名为 impromptu 的框架,但我不确定这是否适用。如果您知道,请提供代码示例以实际将 an 转换ExpandoObjectGridView控件可以绑定的内容。

最坏的情况,是否有人为 Massive 实现了一种附加方法(可以共享)以将结果转换ExpandoObject为 POCO?

任何帮助是极大的赞赏。谢谢。

0 投票
1 回答
4281 浏览

.net - 是否可以将属性添加到 ExpandoObject 实例的生成成员?

我正在尝试使用 ExpandoObject 作为 PropertyGrid 的 SelectedObject。我知道如何将我想要的属性添加到 ExpandoObject:

此代码工作正常 - 调试器expando按预期显示 ' 属性的名称和值。

但是,当我将返回值设置MakePropertyObject()为其属性时,PropertyGrid 中没有显示任何生成的SelectedObject属性。我假设(可能是错误的)这是因为ExpandoObject的属性没有任何DisplayNameAttribute,DescriptionAttribute或任何其他用于控制属性在PropertyGrid.

我做了一些阅读和一些谷歌搜索,我不知道是否有办法ExpandoObject用自定义属性装饰生成的属性。有谁知道如何做到这一点,或者有更好的方式来显示ExpandoObjecta PropertyGrid

解决方案:

@Stephen Cleary 提供的答案是正确且有帮助的(感谢 Stephen)。对于其他有同样问题的人,实施ICustomTypeDescriptor对我来说非常有效。

作为旁注,实现的对象ICustomTypeDescriptor为自己提供属性和事件描述符,而不是为另一个对象提供。我认为描述符和所描述的内容最初应该通过属性或其他东西链接 - 对象应该描述自己的类型对我来说似乎令人困惑和多余,但这确实是PropertyGrids 使用ICustomTypeDescriptor接口的方式。

0 投票
1 回答
5242 浏览

c# - 如何动态引用 ExpandoObject 中的字段?

有没有办法使用“IDictionary”样式查找动态访问扩展的属性?

0 投票
6 回答
5000 浏览

c# - 如何将集合初始化器语法与 ExpandoObject 一起使用?

我注意到新ExpandoObject实现IDictionary<string,object>具有必要条件IEnumerable<KeyValuePair<string, object>>Add(string, object)方法,因此应该可以使用集合初始化器语法向 expando 对象添加属性,就像向字典添加项目一样。

但似乎没有办法做到这一点。错误:

“System.Dynamic.ExpandoObject”不包含“添加”的定义

我认为这不起作用,因为接口是显式实现的。但是有没有办法解决这个问题?这工作正常,

但集合初始值设定项语法要简洁得多。

0 投票
2 回答
3670 浏览

c# - 是否可以使用 ExpandoObject 创建动态树结构?

目前我正在使用 ExpandoObject 动态存储名字和姓氏。

例如

我想知道是否可以将字段动态存储到树结构中,以便我可以拥有名为 Name 的父字段,然后是名为 Firstname 和 Surname 的两个子字段。理想情况下,这可能会扩展到包括更多子级别。我在下面做了一些伪代码来理想地展示我希望它如何工作。(当然此代码当前会导致错误)

0 投票
1 回答
1006 浏览

asp.net-mvc - asp.net mvc 中的动态(ExpandoObject)与静态类型(模型)

asp.net mvc中的动态与静态类型

汽车比摩托车好吗?这完全取决于您使用它的场景。在不了解情况的情况下,不可能做出这样的决定!

对于某些问题/情况,动态类型是否优于静态类型。

在这种情况下

当调用 BaseController 的 OnException() 方法时,我需要显示视图。这是一次性的事情,我只显示一次错误页面而不是黄屏死机。

假设我需要在视图上显示 ErrorMessage 和 Stacktrace。由于这是一次性的事情,因此使用动态而不是为此创建错误模型更好。

什么是最佳实践。谢谢回复。

0 投票
4 回答
8617 浏览

asp.net-mvc-3 - ExpandoObject、匿名类型和 Razor

我想使用 ExpandoObject 作为类型为 Razor 视图的视图模型ViewPage<dynamic>。执行此操作时出现错误

我能做些什么来完成这项工作?