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

c#-4.0 - .NET 4 中是否有 mongodb C# 驱动程序支持 System.Dynamic.DynamicObject?

我正在开发一个使用 .NET Razor 和 mongodb 的项目。我想做这样的事情:

但是,当前的 mongodb C# 驱动程序 FindAll() 返回不支持动态对象的 BsonDocument 集合。有人知道.NET 4 动态支持的 mongodb C# 驱动程序吗?

非常感谢

0 投票
1 回答
254 浏览

javascript - 设置值从数据库中检索标签后

我有 JSP 页面。在 HTML 标签下的那个页面中,我有<input>标签。现在,在使用 JDBC 连接从数据库中检索这些输入标记后,将设置这些输入标记的值。假设我有一个页面page1.jsp,其中有一个 javascript 代码,其中包含一个函数,在该函数中我重定向到使用数据库连接检索值的页面。现在,当我执行查询时,我得到了结果集变量中的所有值。我希望将这些值再次发送回,page1.jsp以便我可以使用它们将它们设置为我的标签的值。我想知道我该怎么做。我应该将结果集变量中的每个值存储到会话变量中并稍后使用它们,还是应该将 rs 变量返回到第 1 页并在<input>标签中设置值,例如<%=rs.getInt("String")%>. 一个人建议我使用动态对象。我听说过它们,但从未使用过它们。这样做的更好方法是什么。

0 投票
3 回答
4129 浏览

delphi - 动态 TImage 在动态 TPanel 中?

好的,我正在尝试在运行时在 TScrollBox 表面上创建一些自定义数量的 TPanel,如下图所示。

在此处输入图像描述

为此,我正在使用以下代码,并且效果很好。

现在,我无法将 TImage 对象放在每个具有相同索引的 TPanel 中(img[0] -> pan[0]、img[1] -> pan[1] 等)。看下图:

在此处输入图像描述

使用相同的逻辑,我尝试创建 TImage,但没有成功。

我正在使用此代码,但无法弄清楚出了什么问题。它对我来说看起来很简单,但不知何故它并没有提供预期的效果。

不知何故,它将所有 TImage 对象放在第一个 TPanel (pan[0]) 中的同一位置。这让我感到困惑,因为它说Parent := pan[i-1];但由于某种原因它总是将 TImage 放在 pan[0] 中。我尝试使用断点来查看每个 for 循环循环之后发生的情况(最后添加了 Application.ProcessMessages),它确实创建了 10 个不同的图像,但将它们放在 pan[0] 上。当然,最后它只显示加载到 pan[0] 中的最后一张图像。

我的问题是如何为每个动态 TPanel 制作一个动态 TImage(具有相同的数组索引)?

解决了!

0 投票
2 回答
579 浏览

c# - MVVM DynamicObject + 实体框架 STE 实体 + 属性更改行为

我正在为我的 WPF 项目创建一个 BaseViewModel,它派生自 DynamicObject,我不确定如何处理与主实体“相关”的实体的属性更改(主实体的导航属性)视图模型)。

例如:

虚拟机:

例如,这将是 Customer CRUD 的 VM。例如,客户实体有一个称为地址的导航属性(地址类型的实体)。

现在,问题是,当将视图绑定到 Address 内的属性时,更改不会报告给 VM,而是直接报告给实体,因此不会触发 VM 级别中定义的任何行为。

我知道解释可能不够清楚,我只是不知道如何用我糟糕的英语更好地解释自己。

我的问题是:通用的基于 DynamicObject 的 VM 如何处理我需要为不属于主实体的属性定义行为的场景?

0 投票
1 回答
506 浏览

c# - 为什么我的 TryInvokeMember 没有被调用?

我的 DynamicObject 实现如下所示:

这就是我使用这个对象的实例的方式:

曾经工作:),我不确定发生了什么变化。调试器没有中断 TryInvokeMember 调用,我得到了一个RuntimeBinderException. 此类在与正在运行的程序集不同的程序集中定义(以正常方式引用它,通过从同一解决方案添加对项目的引用)。

对实例执行调用后,我得到以下堆栈跟踪:

Microsoft.CSharp.RuntimeBinder.RuntimeBinderController。SubmitError (Microsoft.CSharp.RuntimeBinder.Errors.CError pError) + 0x23 字节
Microsoft.CSharp.RuntimeBinder.Semantics.LangCompiler。SubmitError(Microsoft.CSharp.RuntimeBinder.Errors.CParameterizedError 错误)+ 0x24 字节
Microsoft.CSharp.RuntimeBinder.Errors.ErrorHandling。ErrorTreeArgs (Microsoft.CSharp.RuntimeBinder.Errors.ErrorCode id, Microsoft.CSharp.RuntimeBinder.Errors.ErrArg[] prgarg) + 0x53 字节 Microsoft.CSharp.RuntimeBinder.Semantics.MemberLookup。ReportErrors () + 0x6cd 字节
Microsoft.CSharp.RuntimeBinder.RuntimeBinder。绑定调用(Microsoft.CSharp.RuntimeBinder.ICSharpInvokeOrInvokeMemberBinder 有效负载、Microsoft.CSharp.RuntimeBinder.Semantics.EXPR 调用对象、Microsoft.CSharp.RuntimeBinder.RuntimeBinder.ArgumentObject[] 参数、System.Collections.Generic.Dictionary 字典)+ 0x206 字节 Microsoft.CSharp。 RuntimeBinder.RuntimeBinder。DispatchPayload(System.Dynamic.DynamicMetaObjectBinder 有效负载,Microsoft.CSharp.RuntimeBinder.RuntimeBinder.ArgumentObject[] 参数,System.Collections.Generic.Dictionary 字典)+ 0xb1 字节
Microsoft.CSharp.RuntimeBinder.RuntimeBinder。绑定核心(System.Dynamic.DynamicMetaObjectBinder 有效负载,System.Collections.Generic.IEnumerable 参数,System.Dynamic.DynamicMetaObject[] args,出 System.Dynamic.DynamicMetaObject deferredBinding)+ 0xbc 字节
Microsoft.CSharp.RuntimeBinder.RuntimeBinder。绑定(System.Dynamic.DynamicMetaObjectBinder 有效负载,System.Collections.Generic.IEnumerable 参数,System.Dynamic.DynamicMetaObject[] args,输出 System.Dynamic.DynamicMetaObject deferredBinding)+ 0x56 字节
Microsoft.CSharp.RuntimeBinder.BinderHelper。绑定(System.Dynamic.DynamicMetaObjectBinder 操作,Microsoft.CSharp.RuntimeBinder.RuntimeBinder 绑定器,System.Collections.Generic.IEnumerable args,System.Collections.Generic.IEnumerable arginfos,System.Dynamic.DynamicMetaObject onBindingError)+ 0x2ca 字节 Microsoft.CSharp.RuntimeBinder .CSharpInvokeMemberBinder。FallbackInvokeMember(System.Dynamic.DynamicMetaObject 目标,System.Dynamic.DynamicMetaObject[] args,System.Dynamic.DynamicMetaObject errorSuggestion)+ 0x77 字节
System.Dynamic.DynamicObject.MetaDynamic.BindInvokeMember。AnonymousMethod__10 (System.Dynamic.DynamicMetaObject e) + 0x1b 字节
System.Dynamic.DynamicObject.MetaDynamic。BindInvokeMember(System.Dynamic.InvokeMemberBinder 绑定器,System.Dynamic.DynamicMetaObject[] args)+ 0xb8 字节 System.Dynamic.InvokeMemberBinder.Bind(System.Dynamic.DynamicMetaObject 目标,System.Dynamic.DynamicMetaObject[] args)+ 0x36 字节 System.Dynamic .DynamicMetaObjectBinder.Bind(object[] args, System.Collections.ObjectModel.ReadOnlyCollection 参数, System.Linq.Expressions.LabelTarget returnLabel) + 0xea 字节 System.Runtime.CompilerServices.CallSiteBinder。BindCore >(System.Runtime.CompilerServices.CallSite> site, object[] args) + 0x80 字节 System.Dynamic.UpdateDelegates。UpdateAndExecuteVoid3(System.Runtime.CompilerServices.CallSite 站点,对象 arg0,十进制 arg1,双 arg2)+ 0x30e 字节 MyApp.DynCallsite。我的方法(字符串 str1,十进制数,字符串 str2)第 96 行 + 0x17d 字节 C#

看起来好像我使用的是 DynamicObject 实例而不是我的专门派生类。但是,我确认不是这种情况,因为我可以在调试器中检查调用站点对象,它显示的是 DynCallsite。什么可能导致这种情况?

0 投票
2 回答
563 浏览

php - 用 php 加载一个“on-the-fly”类

我有一个现有的类,我想创建一个系统来为它加载“插件”。这些“插件”被创建为文件,然后包含在主类的文件中。

现在我认为主类需要用他们自己的类来扩展那些小“插件”。问题是我不知道哪些插件会包含不同的用户。所以类的扩展是动态的。

如何在不使用 eval 的情况下即时扩展一个类(我也没有测试过)?

0 投票
2 回答
552 浏览

c# - C# DynamicObject 类方法

是否有一种简单的方法可以为 DynamicObject 或 ExpandoObject 的子类创建类方法?

回归反思是唯一的方法吗?

我的意思是:-

在这种情况下,Bird.Fly 应用于 Bird 类而不是任何特定实例。

0 投票
2 回答
11164 浏览

c# - C# DynamicObject 动态属性

假设我不能使用 ExpandoObject 并且必须像这样滚动我自己的:-

并且在我拥有的类层次结构中更进一步

这非常好,因为现在我可以执行以下操作:-

但以上假设我在编译时知道属性(例如年龄、姓名)。

假设直到运行时我才知道它们会是什么。

如何更改上述内容以支持我只会在运行时知道的属性?

基本上我想我要问的是如何调用直接调用 TrySetMember 的代码,以便它要么创建一个新属性,要么在已定义的情况下使用 getter/setter。

最终解决方案如下:-

0 投票
2 回答
3272 浏览

wpf - 将 WPF 扩展工具包 PropertyGrid 绑定到字典或其他动态源?

我有一个包含多个子元素的 XML 文件。每个子元素都包含一系列元素,但 XML 模式没有记录,因此我无法解释所有可能的元素名称。我的目标是为每个子元素提供一个编辑器视图。例如:

XML 文件

我希望使用 WPF Toolkit 的 PropertyGrid 控件(或类似的控件)来显示 的所有子元素的列表<element>,但该控件旨在绑定到 CLR 对象。当然我不能用属性定义一个类,因为我不知道这些属性是什么。我尝试使用以下代码绑定到 expando 对象:

但不显示任何属性。它似乎不能很好地处理 ExpandoObject。有没有更好的方法来处理我正在尝试做的事情?一个更好的控制来做到这一点?

0 投票
1 回答
2301 浏览

javascript - 动态分层 Javascript 对象循环

之前的数组应该是空的。应根据通过的动态值定义所需的节点数来填充 AFTER 数组。

我想动态构建层次结构,每个节点都创建为层次结构中的层/级别,具有自己的节点数组。这应该形成一个树形结构。这是上面代码中描述的层次结构。应该有一个根节点,以及一个未定义数量的节点和级别来构成层次结构大小。除了根节点之外,什么都不应该被修复。我不需要阅读或搜索层次结构,我需要构建它。数组应该从 {"name" : "A", "children" : []} 开始,并且每个新节点都将被创建为级别 {"name" : "A", "children" : [HERE-{"name" : “A”,“儿童”:[]}]}。在子数组中,越来越深。基本上,数组在调用之前应该没有值,除了根节点。在函数调用之后,数组应该包含一个数字的所需节点,根据数据库查询的结果,每次调用可能会有所不同。每个子数组将包含一个或多个节点值。至少应该有 2 个节点级别,包括根。它最初应该是一个空白画布,即没有预定义的数组值。