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

c# - 动态代理集合接口

我偶尔有理由编写集合类适配器,即为实现IList<T>代理其方法的类创建一个适配器,同时添加一些额外的功能。该IList接口有许多方法/属性,我想知道直通代理方法是否可以动态实现?我看了看DynamicObject,但只能找到一些代理 DTO 类的简单示例,即代理仅具有属性的类。

代理IList<T>可以吗?

例如

0 投票
2 回答
365 浏览

c# - 如何创建动态类并将其添加到项目中

我如何创建一个动态类并将其添加到项目中(创建自)?

我可以在我的项目的构建和重建中创建类吗?我的意思是我可以在我的项目中处理构建和重建事件吗?

谢谢

0 投票
1 回答
177 浏览

c# - C# 中有现成的 DynamicObject 吗?

我知道viewbag是即用型 DynamicObject 之一,但如果您不在视图或控制器中,除了编写您自己的以外,还有其他 Ready-to-use DynamicObject吗?

(顺便说一句,我找到了一个很棒的工具示例http://www.codeproject.com/KB/cs/dynamicincsharp.aspx

我真的很懒,只想使用一些已经制作好的DynamicObject。

0 投票
1 回答
1993 浏览

asp.net - 带有 ASP.NET 数据绑定的 C# 4.0 动态对象

我试图在 ASP.NET GridView 中显示已使用动态对象动态创建的绑定对象的属性。在我的示例中,DynamicProperties.FullName 是动态的。

我的客户代码是:

我的 BLL 代码是(为了清楚起见,我对其进行了简化,并且不包括我在 ASP.NET 绑定中使用的 CustomerCollection 声明):

当我运行应用程序时,我收到以下 HttpException 错误: DataBinding:“System.Dynamic.ExpandoObject”不包含名为“FullName”的属性。

我确定我做错了什么,但找不到什么。当我在我的 Customer 对象中添加一个名为 FullName 的属性并让 getter 返回 DynamicProperties.FullName 时,它​​就像一个魅力(我的 ASP.NET Eval 在这种情况下指的是FullName而不是 DynamicProperties.FullName)。

一个主意?谢谢,奥米德。

0 投票
1 回答
266 浏览

.net - 如何使用分层键反序列化字典到动态对象?

我正在以字典形式接收数据,并希望将其反序列化为动态对象。扭曲是字典键表示分层对象。第二个转折点是一些键表示数组和/或字典属性。

例如:

编辑:添加数组示例

我试图找到一种简单的方法来创建一个对象,然后可以在运行时表达式评估器中使用该对象。

这是我第一次尝试适用于简单属性,但不尝试处理数组

关于更好的方法来解决这个问题的任何想法?

谢谢,

0 投票
5 回答
54694 浏览

c# - 动态不包含项目引用中的属性定义

我收到一条错误消息:

“对象”不包含“标题”的定义

所有代码也在github上

我有一个看起来像这样的 ConsoleApplication1

电影.cs

它在同一个项目中工作正常,但是如果我添加 ConsoleApplication2 并引用 ConsoleApplication1 并添加完全相同的代码

我收到一个错误:

“对象”不包含“标题”的定义**

即使它在动态对象中。

  • o.Title 'o.Title' 抛出类型为 'Microsoft.CSharp.RuntimeBinder.RuntimeBinderException' 动态 {Microsoft.CSharp.RuntimeBinder.RuntimeBinderException} 的异常

这是一个屏幕截图:在此处输入图像描述

我正在做这样的事情并尝试从测试项目中调用电影功能。

0 投票
1 回答
187 浏览

asp.net - System.Dynamic ExpandoControl 可能吗?

我试图弄清楚如何创建一个基本上是 ExpandoObject 的 Web 服务器控件。

希望在 aspx 标记中创建控件时自动在控件上创建一个属性。

例如:

其中 someProperty 属性尚不作为控件上的属性存在。

我还应该提到,我并不严格需要 Control 或 WebControl 的任何功能。我只需要能够使用 runat="server" 在标记中声明它(这本身可能要求它是一个控件,至少我是这么想的)。

可能吗?如果是这样,我该如何开始?

非常感谢。

0 投票
1 回答
5388 浏览

c# - DynamicObject 和 TrySetMember 性能与 ExpandoObject 性能

我正在使用 DynamicObject 的自定义实现,它非常适合我的应用程序,除了我遇到了一些性能问题。动态会产生一些性能开销,但我看到即使使用 ExpandoObject 也会有显着的(阅读:数量级)性能损失。

我不能使用 ExpandoObject 的原因是我想覆盖它的一些行为。我将问题归结为下面的一个非常简单的示例。

我的自定义 ExpandoObject 代码如下(简化为足以显示问题的代码)-

当我直接在 DynamicObject 的字典中设置值时(iemdictionary["keyname"] = 500),然后我看到类似于 ExpandoObject 的性能,即在亚毫秒时间内设置字典中键的值。当我使用 TrySetMember 覆盖 (iemkeyname = 500) 时,我看到每个键值集的性能下降到 30 毫秒 - 50 毫秒。当写入很多键时,这显然会成为一个问题。即使我一遍又一遍地写入同一个密钥,通过 TrySetMember 访问它也需要相同的时间。

我真正的性能问题似乎与我使用动态的事实无关,因为它使用 TrySetMember 覆盖。对于踢,我什至评论了

在 TrySetMember 方法中,只留下一个“return true;”,性能是一样的。

如果我在我的 SuperExpando 类中添加如下内容——

通过 TryGetMember 访问(读取)变量的性能问题是相同的,而直接读取字典提供了合理的性能。

有任何想法吗?

-BJ奎因

编辑:这是完整的示例代码。只需创建一个表单并在其上放置一个运行 go_Click 事件的按钮并将您的项目设置为控制台应用程序。对我来说,在 ExpandoObject 中设置所有 50 个键需要大约 30 毫秒,而 SuperExpando 至少需要大约 750 毫秒。

0 投票
1 回答
454 浏览

c# - 使用 DynamicObject 模拟 DependencyProperties

我正在寻找类似于 VS 或 Blend 的功能之一的东西,当一个人选择多个对象时,属性网格会显示所有对象共享的任何属性的值,并且不会显示对象之间不同的属性。

我已经设法使用动态对象为 CLR 属性实现了这种行为:

  • _knownProperties只是先前请求的属性列表
  • _collection是一个 IEnumerable 实例

我正在通过 WPF 绑定访问这些属性。谁能想到一种为 DependencyProperties 实现此功能的方法?如果我尝试绑定到对象上的附加属性,我会ArgumentNullException在属性系统中得到一个(根据我拥有的来源,为 null 的对象不可能为 null

  • {Binding Selection.SomeClrProperty,...}工作正常(Selection是动态对象之一,SomeClrProperty是集合中每个元素的属性。
  • {Binding Selection.(SomeClass.SomeAttachedProperty),...}在属性系统中引发错误

例外:

0 投票
2 回答
1703 浏览

dynamic - Telerik ASP MVC 的动态模型

有没有人找到一种使用 ExpandoObject、DynamicObject 或 Reflection.Emit 动态创建网格并同时允许 CRUD 操作的方法?

我能够使用 Reflection.Emit 动态创建我的网格列并显示数据,但是一旦我尝试编辑一行,单元格内容就会消失。

任何帮助将不胜感激!