问题标签 [object-graph]
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.
iphone - 将对象图持久保存到 iPhone 上的最佳方法
我在 iPhone 平台上的 Objective-C 中有一个对象图,我希望在关闭应用程序时坚持闪烁。该图有大约 100k-200k 个对象并包含许多循环(按设计)。我需要能够尽快读/写这个图表。
到目前为止,我已经尝试过使用 NSCoder。这不仅与循环有关,而且还需要很长时间和大量内存来持久化图形 - 可能是因为在后台使用了 XML 文档。我也使用过 SQLite 数据库,但单步执行这么多行也需要大量时间。
我曾考虑使用 Core-Data,但担心我会遇到与 SQLite 或 NSCoder 相同的问题,因为我相信 core-data 的后备存储将以相同的方式工作。
那么有没有其他方法可以以轻量级的方式处理这个对象图的持久性 - 理想情况下我想要像 Java 的序列化这样的东西?我一直在考虑尝试Tokyo Cabinet或将一堆 C 结构占用的内存写入磁盘——但这将是大量的重写工作。
entity-framework - 如何在 WCF Ria Services/Linq2SQLDomainModel 中预加载
我的视图 (XAML) 中有一个数据绑定网格,并且 Itemsource 指向一个 ReportsCollection。Reports 实体具有三个原语和一些复杂类型。这三个在数据网格中按预期显示。此外,Reports 实体具有 Store 类型的属性。当通过 GetReports 域方法加载报告时,我很快发现只返回原语,而不是某个深度的整个图。因此,由于我也想加载 Store 属性,所以我在我的域服务中进行了此更改:
从我在即时窗口中看到的内容来看,存储按预期加载,但是当返回给客户端时仍然被修剪。如何解决这个问题?
谢谢!
c# - 对象图和网络服务
我对网络服务真的很陌生,需要创建一个可以处理对象图的网络服务。我的典型示例是一个 CRM Web 服务,给定一个客户编号将返回一个类型为 Company 的“对象”,其集合属性为 Contacts。
IE:
将返回一个实例:
能够创建 web 服务,以便可以轻松地从 Visual Studio 中使用它,这样它就可以直接与公司和相关联系人一起工作,这将是非常好的......
这可能吗?
谢谢弗雷德里克
java - Java中的对象树导航语言
在我目前正在开发的系统中,我经常需要导航对象树并根据其状态和值采取行动。在普通的 Java 中,这会导致繁琐的 for 循环、if 语句等......是否有替代方法来实现树导航,类似于 XML 的 XPath?我知道有 JXPath 和 OGNL,但是您知道其他用于此目的的库吗?您是否知道任何为特定树导航表达式生成字节码以使处理与 Java 本机 fors 和 ifs 一样快的库?
c# - 克隆整个对象图
使用此代码序列化对象时:
我注意到它不会复制关系。有没有办法做到这一点?
configuration - StructureMap HowTo:深度对象的条件构造
我很难有条件地创建依赖项。谷歌搜索,我还没有找到使用 BuildStack 和条件谓词的好例子。
这是我在注册表中所做的:
这是显示我所期待的单元测试
这就是我希望 StructureMap 与 IFoo 的正确依赖关系的 AutoWire:
我无法弄清楚如何让GiveUsProperFoosWhenWeDontAskDirectly
测试通过。
我想FooA
在我需要的时候进行初始化IDoStuffWithFooA
,什么FooB
时候IDoStuffWithFooB
,不管图表中什么时候需要它。 条件谓词的正确语法是什么?
dependency-injection - 为什么人们谈论 DI 框架“实例化对象图”而不是“实例化对象”?
我正在阅读一本关于 DI 的书,它总是谈论 DI 框架“实例化对象图”。为什么这样说而不是“实例化对象”?
nhibernate - 如何序列化/反序列化具有对其他对象的引用的 NHibernate 实体?
我有两个 NHibernate 管理的实体,它们具有双向的一对多关系:
AStorage
可以包含许多Boxes
,并且 aBox
始终属于 a Storage
。我想编辑一个Box's
名称,所以我使用 JSON 将其发送给客户端。请注意,我没有序列化ParentStorage
,因为我没有更改它所在的存储。
客户端编辑名称并将其Box
作为 JSON 发送回来。服务器将其反序列化回Box
实体。
问题是,该ParentStorage
属性为空。当我尝试将 保存Box
到数据库时,它会更新名称,但也会删除与Storage
.
如何正确序列化和反序列化像 a 这样的实体Box
,同时将 JSON 数据大小保持在最低限度?
java - java:为自定义序列化分配对象引用 ID
由于各种原因,我有一个自定义序列化,我将一些相当简单的对象转储到数据文件中。可能有 5-10 个类,生成的对象图是非循环的并且非常简单(每个序列化对象都有 1 或 2 个对另一个序列化对象的引用)。例如:
id 字段仅用于序列化,因此当我序列化到文件时,我可以通过记录到目前为止已序列化的 ID 来写入对象,然后为每个对象检查其子对象是否已序列化并写入那些没有的,最后通过写入其数据字段和与其子对象对应的 ID 来编写对象本身。
令我困惑的是如何分配 id。我想了想,分配ID似乎有三种情况:
- 动态创建的对象 - id 是从递增的计数器分配的
- 从磁盘读取对象 -- id 是从存储在磁盘文件中的数字分配的
- 单例对象——在任何动态创建的对象之前创建对象,以表示始终存在的单例对象。
我怎样才能正确处理这些?我觉得我在重新发明轮子,必须有一种成熟的技术来处理所有的情况。
澄清:就像一些切线信息一样,我正在查看的文件格式大致如下(忽略了一些不相关的细节)。它经过优化,可以处理大量密集的二进制数据(数十/数百 MB),并能够在其中散布结构化数据。密集的二进制数据占文件大小的 99.9%。
该文件由一系列用作容器的纠错块组成。每个块可以被认为包含一个由一系列数据包组成的字节数组。可以连续读取一个数据包(例如,可以知道每个数据包的结尾在哪里,然后下一个数据包立即开始)。
因此,该文件可以被认为是存储在纠错层之上的一系列数据包。这些数据包中的绝大多数都是不透明的二进制数据,与这个问题无关。然而,这些数据包中的一小部分是包含序列化结构化数据的项目,形成了一种由数据“岛屿”组成的“群岛”,这些数据“岛屿”可以通过对象引用关系链接起来。
所以我可能有一个文件,其中数据包 2971 包含一个序列化的 Foo,数据包 12083 包含一个序列化的 Bar,它引用数据包 2971 中的 Foo。(数据包 0-2970 和 2972-12082 是不透明的数据包)
所有这些数据包都是不可变的(因此考虑到 Java 对象构造的约束,它们形成了一个非循环对象图),因此我不必处理可变性问题。它们也是通用Item
接口的后代。我想做的是将任意Item
对象写入文件。如果Item
包含对文件中已经存在的其他Item
s 的引用,我也需要将它们写入文件,但前提是它们尚未写入。否则,当我读回它们时,我将需要以某种方式合并它们的副本。
java - Java 对象图访问者库
你知道一个好的java对象图访问者库吗?
我想访问一个对象及其子组件,并在某些条件匹配时执行一些操作。
示例用法:
- 在一个巨大的域对象图上,将每个 id 重置为
null
- 在一个巨大的域对象图上,
Set
用一个TreeSet
包含相同元素的实例替换每个对象。
我想要一个库,而不是自定义代码,因为遍历对象图可能很棘手。您必须处理集合、数组、代理等...我曾考虑重用 XStream 的一部分来实现这一点,但看起来并不那么容易:Xstream 访问者更面向对象转换而不是对象自我修改。