问题标签 [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.
c# - 创建具有未知属性类型的动态对象
我想在 ASP.NET MVC 应用程序上创建一个通用的服务器端 DataTable 解决方案。我在每个Index
视图上都有一个 JQuery 数据表,它带有对控制器的 AJAX 调用以检索分页数据结果。执行的操作如下:
返回给 jQuery DataTable 控件的响应格式如下:
我正在处理的部分是制定要返回的模型项目列表,即:
results
应该是任何模型对象的列表,包括其所有相关属性。我一直在尝试reflection
与完成此解决方案一起使用ExpandoObject
,但无法弄清楚机制:
即使在键入此内容时,我也已经弄清楚了一些事情。我无法弄清楚的部分:
即设置属性类型 eg: DateTime
.
让我重复一遍。我想构建一个模型项目列表。这可以是具有任意数量属性的任何模型类型,每个属性可以是任何类型(int、string、bool、DateTime 等)
c# - 同一命名空间中的“动态对象不包含定义”错误
这是我第一次尝试动态对象。我有一个包含字符串 ID 和浮点值的“单元格”类。我想要的是获取一个 Cells 列表并创建一个动态对象,并将其所有 ID 和值作为属性。
这是我的“DynamicRow”:
我试着用这个测试它:
有了这个我得到一个编译器错误
“WPFView.DynamicRow”不包含“NA2_DIR”的定义,并且找不到接受“WPFView.DynamicRow”类型的第一个参数的扩展方法“NA2_DIR”
我读了一些类似的问题,但他们的问题是动态对象是在与调用方法不同的程序集中定义的。在我的例子中,动态对象与调用方法在同一个项目和命名空间中。
我该如何解决这个错误?
c# - 如何转换列表到 XML 字符串
我想使用 ExpandoObjects 列表作为 Telerik Report 的数据源,但 Telerik Reports 目前似乎不支持这一点。他们确实支持将 XML 作为数据源,因此我正在尝试将我的 ExpandoObjects 列表转换为 XML 字符串。
我已经看到(在Can I serialize an ExpandoObject in .NET 4?)可以通过 jsonFx 将单个 ExpandoObject 序列化为 XML 字符串(VB.net 代码,而不是 c#):
或其等效的 c# 代码:
如何将整个列表序列化为 XML 字符串?
c# - DynamicObject 对于空值的行为不同
这是一个DynamicDataObject
派生自的类DynamicObject
我正在消费DynamicDataObject
如下。
我可以在其中看到所有成员person
及其值,_dataDictionary
但同时调试器视图排除了具有null
值的成员。因此该person.Address
成员在动态视图集合中不可见。(请参见下面的屏幕截图)。谁能帮我理解为什么DynamicObject
在这种情况下表现不同?
winforms - winform PropertyGrid 可以编辑动态对象吗?
正如我们所知,默认情况下,winform PropertyGrid 能够编辑预定义类的属性。但是,有时我们可能需要编辑动态创建的对象。参考下面的代码:
ParamForm 窗口包含 2 个控件,一个 PropertyGrid 和一个 Button。它旨在能够编辑仅包含字符串或布尔字段的动态对象。
问题是在 PropertyGrid 控件中显示的 Firstname & Lastname 显示为灰色且无法编辑。那么如何让 PropertyGrid 能够编辑动态创建的对象呢?
c# - (De) 用 Jil 序列化 DynamicObject?
我在使用其他不是Newtownsoft.Json的 json 库(反)序列化DynamicObject时遇到问题。(Jil、NetJSON、ServiceStack.Text...)
这是我的可扩展对象类:
其他库(如 Jil)的问题是未调用覆盖的方法。 使用 Newtonsoft.Json 效果很好,但性能很差。
例如 - 派生类的反序列化测试:
也不例外..它只是忽略了“SomeFiled”字段(应该在“Extra”中)
1.有什么解决办法吗?
2.为什么Newtonsoft.Json能执行操作而JIL不能?(或其他快速库......)。我知道DLR应该调用被覆盖的方法。我怎样才能让它工作?
谢谢。
编辑:
现在我使用DeserilizeDynamic而不是 Deserialize(T)。现在它可以工作了,我的方法由 DLR 调用。目前唯一的问题是 DeserilizeDynamic 返回“动态”并且没有通用覆盖 (T)。并且由于该 Web API 无法解析 POST 操作上的对象类型,例如。也许将来...
c# - IronPython 与 DynamicObject 子类
我有一个继承的类DynamicObject
,我需要通过IronPython
. 我可以毫无问题地访问动态属性,但普通的旧属性不起作用。
这是我的对象的一个稍微简化的实现:
这是一个NUnit
演示问题的测试用例:
第一个测试通过,但第二个没有,因为它抛出:
System.MissingMemberException:“Foo”对象没有属性“PlainOldProperty”
这是因为发生了什么TrySetMember()
:如果我们试图设置的成员尚未包含在字典中,它会将作业委托给DynamicObject
的版本TrySetMember()
。事实证明,它返回false
,因此是例外。
但是,你如何设置PlainOldProperty
从IronPython
?正如C#
预期的那样,它工作得很好。
我要么错过了什么,要么无法完成。
此外,我尝试覆盖所有其他方法,DynamicObject
以查看它们是否被 击中IronPython
,但没有雪茄。
任何人都可以解释为什么会这样吗?
c# - MicroLite ORM 是否支持 DynamicObject / IDynamicObjectMetaProvider
我正在寻找一个支持 DynamicObject / IDynamicObjectMetaProvider 结构的微系统,例如:
填充:
它只是抛出一个MicroLiteException
附加信息System.Object
。
MicroLite 是否支持此类对象?
c# - 在 DynamicObject 上添加操作
我有一个 DynamicObject 的子类,我在其中实现了几个隐式运算符(用于自动转换)并覆盖了一些 Try[OperationType] 方法。
当我尝试使用该类型的对象进行 add(+) 操作时出现异常(问题底部的异常)。
我认为对这个问题有帮助的答案是这个。描述的行为是正确的,但是我的动态对象定义了几个静态隐式运算符,我认为问题出在字符串之一。当我为字符串定义隐式运算符时,que add(+) 操作会引发异常。我可以通过堆栈跟踪观察到问题可能是他无法绑定运算符,我开始认为那是因为某种添加/连接混淆。
我简化了我的代码并编写了这个测试,我认为它描述了这种情况。当我评论字符串的隐式运算符时,一切都很好。
难道我做错了什么?我还需要重写一些方法吗?有什么想法吗?
例外: