问题标签 [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.
c# - 是否可以使用 ExpandoObject 创建运行时属性?
通常,我们可以创建这样的属性,
就我而言,直到运行时我才会知道诸如“价格”或“价值”之类的属性。如何,我可以创建这样的动态属性。就像是,
无论如何要实现这种行为。
c# - 没有参数的方法如何分配给 ExpandoObject?
我正在尝试使用此签名将方法(函数)分配给 ExpandoObject:
我试图做类似下面这段代码的事情,但它不能编译:
不幸的是,我无法更改 CreateList 签名,因为它会破坏向后兼容性,因此重写它不是一种选择。我试图通过使用委托来解决这个问题,但在运行时,我得到了一个“不能调用非委托类型”的异常。我想这意味着我没有正确分配代表。我需要帮助使语法正确(代表示例也可以)。谢谢!!
.net - .net expando 对象和 LINQ。可能与否?
我有一个名为 products 的简单扩展对象列表。
我在运行时向这些对象添加各种字段(例如颜色或大小)
如何根据动态字段在此列表上编写 LINQ 查询?
使用经典的对象列表,我可以编写这样的 LINQ 查询:
但是使用expandos,如何实现这一点,知道我事先不知道字段的名称(可能是重量大小或其他任何东西)?
先感谢您。
.net - 将 GridView 绑定到 Dynamic 或 ExpandoObject 对象
我正在使用 Rob Conery 的 Massive ORM,但我无法将结果绑定ExpandoObject
到GridView
.
我确实发现了另一个 Stackoverflow 问题,该问题建议使用名为 impromptu 的框架,但我不确定这是否适用。如果您知道,请提供代码示例以实际将 an 转换ExpandoObject
为GridView
控件可以绑定的内容。
最坏的情况,是否有人为 Massive 实现了一种附加方法(可以共享)以将结果转换ExpandoObject
为 POCO?
任何帮助是极大的赞赏。谢谢。
.net - 是否可以将属性添加到 ExpandoObject 实例的生成成员?
我正在尝试使用 ExpandoObject 作为 PropertyGrid 的 SelectedObject。我知道如何将我想要的属性添加到 ExpandoObject:
此代码工作正常 - 调试器expando
按预期显示 ' 属性的名称和值。
但是,当我将返回值设置MakePropertyObject()
为其属性时,PropertyGrid 中没有显示任何生成的SelectedObject
属性。我假设(可能是错误的)这是因为ExpandoObject
的属性没有任何DisplayNameAttribute
,DescriptionAttribute
或任何其他用于控制属性在PropertyGrid
.
我做了一些阅读和一些谷歌搜索,我不知道是否有办法ExpandoObject
用自定义属性装饰生成的属性。有谁知道如何做到这一点,或者有更好的方式来显示ExpandoObject
a PropertyGrid
?
解决方案:
@Stephen Cleary 提供的答案是正确且有帮助的(感谢 Stephen)。对于其他有同样问题的人,实施ICustomTypeDescriptor
对我来说非常有效。
作为旁注,实现的对象ICustomTypeDescriptor
为自己提供属性和事件描述符,而不是为另一个对象提供。我认为描述符和所描述的内容最初应该通过属性或其他东西链接 - 对象应该描述自己的类型对我来说似乎令人困惑和多余,但这确实是PropertyGrid
s 使用ICustomTypeDescriptor
接口的方式。
c# - 如何动态引用 ExpandoObject 中的字段?
有没有办法使用“IDictionary”样式查找动态访问扩展的属性?
c# - 如何将集合初始化器语法与 ExpandoObject 一起使用?
我注意到新ExpandoObject
实现IDictionary<string,object>
具有必要条件IEnumerable<KeyValuePair<string, object>>
和Add(string, object)
方法,因此应该可以使用集合初始化器语法向 expando 对象添加属性,就像向字典添加项目一样。
但似乎没有办法做到这一点。错误:
“System.Dynamic.ExpandoObject”不包含“添加”的定义
我认为这不起作用,因为接口是显式实现的。但是有没有办法解决这个问题?这工作正常,
但集合初始值设定项语法要简洁得多。
c# - 是否可以使用 ExpandoObject 创建动态树结构?
目前我正在使用 ExpandoObject 动态存储名字和姓氏。
例如
我想知道是否可以将字段动态存储到树结构中,以便我可以拥有名为 Name 的父字段,然后是名为 Firstname 和 Surname 的两个子字段。理想情况下,这可能会扩展到包括更多子级别。我在下面做了一些伪代码来理想地展示我希望它如何工作。(当然此代码当前会导致错误)
asp.net-mvc - asp.net mvc 中的动态(ExpandoObject)与静态类型(模型)
asp.net mvc中的动态与静态类型
汽车比摩托车好吗?这完全取决于您使用它的场景。在不了解情况的情况下,不可能做出这样的决定!
对于某些问题/情况,动态类型是否优于静态类型。
在这种情况下
当调用 BaseController 的 OnException() 方法时,我需要显示视图。这是一次性的事情,我只显示一次错误页面而不是黄屏死机。
假设我需要在视图上显示 ErrorMessage 和 Stacktrace。由于这是一次性的事情,因此使用动态而不是为此创建错误模型更好。
什么是最佳实践。谢谢回复。
asp.net-mvc-3 - ExpandoObject、匿名类型和 Razor
我想使用 ExpandoObject 作为类型为 Razor 视图的视图模型ViewPage<dynamic>
。执行此操作时出现错误
我能做些什么来完成这项工作?