问题标签 [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.
silverlight - 如何将 ExpandoObjects 集合绑定到数据网格?
我正在尝试从 Excel 文件 (.xls) 中读取表格并将其显示在 DataGrid 中。该表具有未知维度,并且每列具有一种未知类型(字符串、双精度或整数)的值。
我通过 COM 访问该文件并将该表放在 ExpandoObjects 的 List<> 中。当我将 DataGrid.ItemSource 设置为 List 时,Grid 在视觉上仍然是空的。显式定义列及其数据绑定会产生应用程序无法在 ExpandoObjects 中找到指定属性的运行时消息。
如何在 GridView 中显示表格?我使用 Silverlight 5 RC,并希望有一种简单的方法来做到这一点。至少比我目前看到的 Silverlight 2 和 3 的解决方案更简单。
asp.net-mvc-3 - 对简单 JsonResult 进行单元测试的最佳方法是什么?
如果 AJAX 调用成功,我想返回一个简单的对象Success = true
这工作正常,我的 javascript 接收的对象看起来像
但是因为返回的对象是匿名类型,所以我不能在我的测试中做(类似的事情)以下内容:
所以我尝试返回一个 ExpandoObject ,它允许测试以我想要的方式工作,但是在 AJAX 响应中发送回的 JSON 是一团糟,如本问题所述。
是否有一种简单、干净的方法来实现看起来应该很容易的事情,或者是在链接问题中实现一些自定义序列化的唯一方法?
c# - 如何在 IEnumerable 中查找类型由 PetaPoco.Database.Query 返回?
我想在运行时找出 ExpandoObject 中的所有类型。
这是一些探索性代码:
where 方法礼貌地跳过了返回的 ExpandoObject 中的空值......几乎不是一个解决方案,因为它依赖于甚至首先返回的行。
有没有更好的方法来查询 PetaPoco.Database 在构建 ExpandoObject 时学到了什么?
(后备是再次查询数据库以获取其模式对象。)
c# - 为什么 LINQ 无法将 DataRows 添加到 DataTable?
为了将 ExpandoObjects 塞入类似以下两个网格的网格中,我们进行了两次尝试。
这不起作用:
但这确实:
为什么?
c# - 动态地将属性添加到动态对象?
我有这个
所以,我知道 d 将有一个属性名称。现在,如果我在编译时不知道属性的名称,我如何将该属性添加到动态中。我发现了这个问题
所以,调用绑定器等有一个复杂的概念。这首先很难得到。有更简单的方法吗?
c# - Expando 动态对象传递给其他类需要 Microsoft.CSharp.dll?
我已经建立了一个功能:
在另一个类/文件上:
出现以下错误:
找不到编译动态表达式所需的一种或多种类型。您是否缺少对 Microsoft.CSharp.dll 和 System.Core.dll 的引用
我在 FILE SYSTEM 中找到 DLL 后引用了它,因为它不在常规的添加引用菜单中。
这是为什么 ?为什么它不会编译?为什么他们没有将 dll 放在正常的添加参考菜单中?(我必须在文件系统中找到 dll ......)
c#-4.0 - 使用 Json.Net 将 Guid 反序列化为 ExpandoObject 会丢失类型并且是字符串
给定以下课程:
以下测试失败:
出现错误:
预期:35ac3081-07cb-41dd-bf40-22e2ff47863c 但是是:“35ac3081-07cb-41dd-bf40-22e2ff47863c”
这是 Json.Net 中的错误还是预期的行为?如何使用 ExpandoObject 让测试通过?
如果我用实体替换 ExpandoObject,它工作得很好。我必须编写自定义 JsonConverter 吗?我尝试了这个,但由于某种原因,尽管 CanConvert 和 WriteJson (成功),但从未调用过 ReadJson。
c# - 动态/扩展对象的 C# 深度/嵌套/递归合并
我需要在 C# 中“合并”2 个动态对象。我在 stackexchange 上找到的所有内容仅涵盖非递归合并。但我正在寻找可以进行递归或深度合并的东西,与jQuery 的$.extend(obj1, obj2)
函数非常相似。
当两个成员发生碰撞时,应适用以下规则:
- 如果类型不匹配,则必须抛出异常并中止合并。例外:obj2 值可能为 null,在这种情况下使用 obj1 的值和类型。
- 对于普通类型(值类型 + 字符串),始终首选 obj1 值
- 对于非平凡类型,应用以下规则:
IEnumerable
&IEnumberables<T>
只是合并(也许.Concat()
?)IDictionary
&IDictionary<TKey,TValue>
被合并;obj1 键在碰撞时优先Expando
&Expando[]
类型必须递归合并,而 Expando[] 将始终只有相同类型的元素- 可以假设集合中没有 Expando 对象(IEnumerabe 和 IDictionary)
- 所有其他类型都可以被丢弃,并且不需要出现在生成的动态对象中
以下是可能合并的示例:
任何想法如何做到这一点?
c# - 在视图中使用 expando 对象?
编辑:似乎很多人认为这是一个愚蠢的想法,所以我希望能解释一下它为什么不好?我试图制作一个可以处理以表格格式显示的任何模型列表的局部视图。我当时计划扩展它,以便在我弄清楚基础知识后还允许使用配置选项来说明要显示的列并添加额外的列。有一个更好的方法吗?
如何在视图中使用 expando 对象列表?我正在尝试制作一个可以显示我的任何模型列表的表格格式的视图,看起来 expando 对象非常适合这个,但我不知道如何正确地获得迭代。
我尝试使用这些链接:Razor 中的动态匿名类型导致 RuntimeBinderException、ExpandoObject、匿名类型和 Razor,但它们似乎不完整或不是我在做什么。
这是我的看法:
我的控制器:
扩展方法:
我可以通过调试看到expando项目的列表正在正确创建,但在视图中它说项目无法在typeof(item)
语句中解析并抛出错误说找不到类型项目。如果我尝试item.GetType().GetProperties()
,则不会返回任何内容。现在我知道这些不起作用,因为类型是动态的,但是我怎样才能动态显示属性和值呢?
c# - 我们可以在运行时创建自动获取和设置属性吗?
我想创建
在运行时根据用户要求。是否可以在 Csharp Using Expandos 或 Dynamics 中执行此操作。我问是否要在运行时行中设置属性名称
公共字符串“用户必须提供属性名”{get;set;}。它必须来自 xml r sql 但我想在运行时设置属性名。