问题标签 [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 投票
0 回答
87 浏览

c# - 在调用扩展方法之前需要强制转换 DynamicObject 的属性吗?

我创建了一个扩展 DynamicObject 的类:

我可以将属性添加到我的类的实例中。例如:

我还可以使用字符串的方法和属性:

但是,使用扩展方法,

给我一个错误'string' does not contain a definition for 'IsEmpty'

只有当我将属性转换为字符串时,才能抑制错误:

我想知道为什么我可以使用字符串方法而不进行强制转换,而我不能使用扩展方法而不进行强制转换。

知道为什么我不能在不强制转换的情况下使用扩展方法吗?

0 投票
1 回答
139 浏览

lua - 随机创建对象名称时如何访问它们

借助下面编写的代码在屏幕上创建随机对象。我想给这些随机对象命名并在用户点击特定对象时访问它,我实际上是在用户点击特定对象时创建游戏,然后只有该特定对象必须射击。请给点建议谢谢...

0 投票
1 回答
113 浏览

c# - 在扩展另一个类的类上实现 DynamicObject 功能

我需要关于模拟 C# 类的多重继承的最佳方法的建议,该类需要通过动态支持进行扩展。

我有一个类 MainClass 不需要依赖于 DLR - 它的所有属性和方法都是静态编译的。它有很多重载的运算符。它是某种 DSL。

ExtendedClass 基本上是一个支持 C# 动态的 MainClass,例如,除了所有 MainClass 特性之外,它还需要重载 DynamicObject 的 TryGetMember/TryInvokeMember,因此客户端可以将它与在运行时评估的扩展属性一起使用。

DynamicObject 是一个类而不是接口的问题出现了。因此 ExtendedClass 只能从 DynamicObject 派生,这意味着它应该基本上复制所有 MainClass 功能。

我想这并不少见(两个相似的类,一个必须从某个系统类派生,因此无法通过从另一个继承来重用功能)。有没有比直接方法更聪明的方法来处理这种情况:将 MainClass 作为成员字段添加到 ExtendedClass,复制其所有方法/属性并将其简单地转发到 MainClass 的包含实例?

0 投票
1 回答
3869 浏览

c# - 如何将 Parallel.ForEach 方法与动态对象一起使用

我之前使用 Parallel.ForEach 功能来同时处理多个客户端,如下所示:

但是现在,我决定像这样动态创建客户端对象,而不是创建客户端类:

现在我不使用 Client 类并动态生成对象,我如何使用 Parallel.ForEach 功能同时处理动态对象中的多个客户端,就像我在使用类对象之前所做的那样?

希望我说清楚了。

另外,如果您能告诉我我的方法是否有问题或向我展示更好的方法,我将不胜感激。

0 投票
1 回答
13240 浏览

c# - "'System.Dynamic.ExpandoObject' does not contain a definition for "PropertyName"

I have the following code that generates Dynamic object from XML file:

C#

XML

The code works fine but I always see the following Exception(multiple times) in the IntelliTrace:

Exception:Thrown: "'System.Dynamic.ExpandoObject' does not contain a definition for 'client'" (Microsoft.CSharp.RuntimeBinder.RuntimeBinderException) A Microsoft.CSharp.RuntimeBinder.RuntimeBinderException was thrown: "'System.Dynamic.ExpandoObject' does not contain a definition for 'client'"

Is there anything wrong with my code?

0 投票
1 回答
1642 浏览

json - 如何让 ServiceStack 根据请求序列化动态(ExpandoObject)属性

是否有任何额外的配置需要让 ServiceStack 将 JSON 请求反序列化为适当的动态对象?我已经编译了包含 DynamicJson 类的 ServiceStack.Text 库的 Net40 版本,并将其添加到我的项目中。我有一个标准的请求和响应 DTO。请求 DTO 具有动态 (ExpandoObject) 公共属性。一旦进入我的服务操作,动态属性似乎没有正确序列化。在客户端,JSON 被完美地反序列化。

这是我正在使用的内容:

请求、响应和服务

JSON POST 正文

在发布 JSON 并进入我的服务操作后,快速查看请求会显示dynamic Subscription为字符串。ServiceStack 可以将 JSON 请求序列化为dynamic?

查看 request.Subscription 展示台 QuickWatch 确认类型是字符串

0 投票
2 回答
813 浏览

c# - C# How to serialize (JSON, XML) normal properties on a class that inherits from DynamicObject

I am trying to serialize an instance of a class that inherits from DynamicObject. I've had no trouble getting the dynamic properties to serialize (not demonstrated here for brevity), but "normal" properties don't seem to make the trip. I experience the same problem regardless of serialization class: it's the same for JavaScriptSerializer, JsonConvert, and XmlSerializer.

Shouldn't MyNormalProperty show up in the serialized string? Is there a trick, or have I misunderstood something fundamental about inheriting from DynamicObject?

0 投票
1 回答
4446 浏览

c# - 在linq查询中以匿名类型设置动态对象的所有属性

我需要将动态对象(即List<DynamicRow>)转换为匿名类型对象列表,但我需要在运行时使用 linq 或其他方式将动态对象的所有属性创建为匿名类型对象。

这可能吗?如果是这样,我该怎么做?

这个动态对象几乎是一个网格类,其中包含列 ieList<String>和行 ie的列表List<DynamicRow>

我可以使用列名 ie 访问 DynamicRow 对象(例如 Order)中保存的值Order[<columnName>] -> Order["OrderNumber"],所以我希望能够使用 Linq 做同样的事情。

有没有办法遍历列列表并为根据列名设置每个属性的每一行创建一个匿名对象类型。

虽然我知道下面的代码不起作用,但它可能会使我想要实现的目标更加清晰:

所以不要有这个:

我想要这样的东西,因为我不会提前知道项目、描述和评论等属性名称。我知道动态对象中的内容的唯一方法是使用列名。

另一个问题,假设上述是可行的,有没有办法让我使用一个键来访问 p 的属性,即 columnName 而不是 p.ElementAt。

更新

我可能应该更清楚。我正在尝试将其绑定到网格,但我也在尝试保持此通用性,以便它可以在任何平台上工作,而不仅仅是 winform。

如果我使用@jjchiw 提供的代码,则在将其输出到我的输出窗口时会得到以下信息:

但是,如果我使用 linq 并提供一些虚拟属性名称并使用以下方式为其分配一些值:

我得到以下输出到我的输出窗口:

将动态列表绑定到我的网格时,它不显示任何内容,但使用匿名类型列表时,它在技术上现在包含“可识别”对象的列表,即我的网格,相应地显示数据。

无论如何强制动态列表表现得像一个匿名列表,以便我可以将动态列表绑定到我的网格但显示正确的结果。

0 投票
1 回答
464 浏览

servicestack - Servicestack ORMLite/Massive 使用 Expandos/Dynamic 管理多个 DataTables?

我有一个存储过程,它根据输入返回多个具有动态类型的数据表,我无法修改或拆分它。

我实际上以这种方式检索数据:

如何处理这些多个数据表,同时保持动态检测每个表列的类型的能力?

预计谢谢

0 投票
1 回答
737 浏览

c# - 投射 WebMatrix DynamicRecord 或检索基础 IDictionary

这可能很容易,但我真的不明白。

据我了解:dynamicC# 依赖的大多数类型IDictionary<string,object>

我用 WebMatrix.Data 做了一个峰值,我想将我的结果投射到IDictionary<string,object>但这不起作用...... WebMatrix.Data 查询返回一个IEnumerable<DynamicRecord>这就是我尝试投射的......

这是我的天真代码...

那么投射动态对象的正确方法是什么?

WebMatrix.DynamicRecord: http: //msdn.microsoft.com/de-de/library/webmatrix.data.dynamicrecord (v=vs.111).aspx

Dynamics.DynamicRecord: http: //msdn.microsoft.com/de-de/library/system.dynamic.dynamicobject (v=vs.111).aspx