问题标签 [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.
asp.net-mvc - 具有动态源的 MVC 3 WebGrid
我有一个动态数据列表,其中包含由 PIVOT 函数创建的动态列数。一切或多或少都有效,但我想对某些列应用一些自定义格式。我想出了如何通过只取第一行并将其转换为这样来获取列列表:
接下来,我决定通过循环“列”来创建我的列表,只要我直接通过动态字段名称引用“格式:”子句中的动态字段,它就可以工作,例如:
“默认”不会动态获取每条记录的值。我相信这与“item [c.Key]”与 item.Cost 有关。问题是我不想为每个字段编写不同的大小写,主要是因为我不提前知道它们,因为数据可能会发生变化。大约有 6 个字段将始终存在。但是我确实知道数据类型,这就是为什么我想在它们上放置自定义格式。
编辑
我设法通过编写扩展方法来解决这个问题。
xml - XML 动态对象和 IEnumberables
我的 DynamicXML 对象有一些问题,它解析 XML 很好,并且对于单个元素效果很好,但是当我有多个子元素时它会倒下。我显然错过了一些东西,但我不知道是什么。
这是课程:
这就是我将如何使用它
现在这工作正常,但如果我的 xml 是:
我想使用类似的东西:
但这不是正在发生的事情我只是得到一个错误:
非常感谢您的帮助。
c# - 在 C# 中合并两个相似的动态对象在途中创建集合
我有多个动态对象(大多数时候)只有几个值不同。我希望能够将这些对象合并到一个对象中,如果发生冲突(两个值不相同),那么我希望将它们存储在一个集合或另一个动态对象中(如果可能的话)。
我正在使用 expandoObject 类,因此我可以将我的对象转换为字典并尝试合并它,但我还没有找到任何关于合并字典的文章或资源,这些字典会创建有冲突的集合。
有没有办法以一种易于实施和高效的方式做到这一点?
我将发布一些代码示例,让您了解我正在尝试完成的工作
c# - 在没有基础字典结构的 PowerShell 中使用 C# ExpandoObjects (Dynamic)
我在 C# 中有一个ExpandoObject,它已经用大量字段/属性进行了初始化,我想在 PowerShell 环境中使用这个对象。当我在 PowerShell 中检索这样的对象时,它不会按应有的方式显示所有字段/属性,而是将它们(基于 ExpandoObjects 中的底层字典结构)显示为键/值对。
就我的实现而言,这是非常有问题的,我找不到任何方法将此键/值对转换为字段/属性,就像这样的对象应该表现的那样。将 ExpandoObject 转换为 Object 也不起作用。我错过了什么吗?
在我的自定义 DLL (DataCollect.dll) 中合并函数
下面是我用来加载 C# dll 并调用合并函数的 PowerShell 脚本。
更新
我还没有找到如何正确地从 C# 到 PowerShell 的转换,但我确实发现了一个从 HashTables 在 PowerShell 中构建对象的小技巧。关键在于使用 Add-Member cmdlet,它允许您在基础对象(例如 System.Object)之上动态构建对象。
因此,我构建了一个模块,该模块从 HashTables 递归地构建对象(我使用递归方法,因为属性也可以是 HashTables(或 ExpandoObjects))。
这确实有效,但有一些缺点。首先,它不保留我的类型信息。一切(除了集合)现在都是一个字符串,而不是 int、bool、float 等。第二个问题可能不是最好和最干净的解决方案。我更喜欢处理 C# DLL 中的所有内容,以便为 PowerShell 用户保持尽可能抽象的低级功能。
这个解决方案可能有效,但我仍然需要更好的实现。
c# - 来自 ExpandoObject 的 MethodInfo
我知道以前在这里要求对 ExpandoObjects 进行反射。
我的问题有点不同。我有静态和动态函数,应该从类似于object ExecuteFunction(string name, params object[] parameters)
.
我通过反射执行静态函数。所以问题是,我是否可以重用 MethodInfo 调用并从 ExpandoObject 中获取 MethodInfo 对象?还是我必须实现 2 个功能(一个 withAction
和一个 with MethodInfo
)?
c# - 字典中的 ExpandoObject 为空值
我有一个在 C# .NET 4.0 中充满动态对象(字典)的字典。有时值是字符串、int 或浮点数,但有时值是 ExpandoObject。Dictionary 本身实际上是转换为 Dictionary 以检索其属性的 ExpandoObject。
问题是,我正在迭代主对象的每个属性(因此也是字典),当有一个 ICollection/IList 或 ExpandoObject 类型的对象时,我想执行一个操作。然而问题是,如果字典中有一个动态对象 (ExpandoObject),它会显示为 Null。
当我在 Visual Studio 2010 中调试并打开动态视图时,它会将这些对象列为属性,但是当我将相同对象的属性作为键值对查看时(从字典视图中查看),值为“ null" 当此对象包含其他 ExpandoObjects 时。Null 永远不会检查为 Collection/EpandoObject 因此我的条件失败。
在使用 ExpandoObjects 之前我没有遇到过这个错误,所以我很好奇为什么它将 ExpandoObjects 视为空值。
有没有我遗漏的东西,我错过的演员或者使用了错误的 DataType?我似乎无法弄清楚,请提供任何帮助!
c# - 为什么我不能在隐式转换中返回接口,但 ExpandoObject 可以?
我有一个DynamicObject
并且我希望它可以转换为 IDictionary,与ExpandoObject
. 例如,将 ExpandoObject 强制转换为 IDictionary 是完全有效的:
现在我尝试将它实现到我自己的 DynamicObject 中:
但是编译器将public static implicit operator IDictionary<string, object>
在线失败,并给出错误:“无法转换为接口类型或从接口类型转换”。如果我将隐式运算符更改为 Dictionary,我可以将 MyDynamicObject 转换为 Dictionary 而不会出现任何问题,但不是 IDictionary。
ExpandoObject 如何做到这一点?
c# - 如何在具有 ExpandoObject 类型的对象上应用扩展方法?
这是我的代码:
但是当我以这种方式调用它时,我得到了“'System.Dynamic.ExpandoObject'不包含'Add'的定义”的错误:
如何解决?
提前致谢!
c#-4.0 - 将 ExpandoObject 转换为匿名类型
是否可以转换ExpandoObject
为匿名类型的对象?
目前我有HtmlHelper
可以将 HTML 属性作为参数的扩展。问题是我的扩展还需要添加一些 HTML 属性,所以我使用 ExpandoObject 合并我的属性和用户使用 htmlAttributes 参数传递给函数的属性。现在我需要将合并的 HTML 属性传递给原始 HtmlHelper 函数,当我发送 ExpandoObject 时,什么也没有发生。所以我想我需要将 ExpandoObject 转换为匿名类型的对象或类似的东西 - 欢迎任何建议。