问题标签 [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.

0 投票
2 回答
695 浏览

iphone - 将对象图持久保存到 iPhone 上的最佳方法

我在 iPhone 平台上的 Objective-C 中有一个对象图,我希望在关闭应用程序时坚持闪烁。该图有大约 100k-200k 个对象并包含许多循环(按设计)。我需要能够尽快读/写这个图表。

到目前为止,我已经尝试过使用 NSCoder。这不仅与循环有关,而且还需要很长时间和大量内存来持久化图形 - 可能是因为在后台使用了 XML 文档。我也使用过 SQLite 数据库,但单步执行这么多行也需要大量时间。

我曾考虑使用 Core-Data,但担心我会遇到与 SQLite 或 NSCoder 相同的问题,因为我相信 core-data 的后备存储将以相同的方式工作。

那么有没有其他方法可以以轻量级的方式处理这个对象图的持久性 - 理想情况下我想要像 Java 的序列化这样的东西?我一直在考虑尝试Tokyo Cabinet或将一堆 C 结构占用的内存写入磁盘——但这将是大量的重写工作。

0 投票
1 回答
1057 浏览

entity-framework - 如何在 WCF Ria Services/Linq2SQLDomainModel 中预加载

我的视图 (XAML) 中有一个数据绑定网格,并且 Itemsource 指向一个 ReportsCollection。Reports 实体具有三个原语和一些复杂类型。这三个在数据网格中按预期显示。此外,Reports 实体具有 Store 类型的属性。当通过 GetReports 域方法加载报告时,我很快发现只返回原语,而不是某个深度的整个图。因此,由于我也想加载 Store 属性,所以我在我的域服务中进行了此更改:

从我在即时窗口中看到的内容来看,存储按预期加载,但是当返回给客户端时仍然被修剪。如何解决这个问题?

谢谢!

0 投票
2 回答
391 浏览

c# - 对象图和网络服务

我对网络服务真的很陌生,需要创建一个可以处理对象图的网络服务。我的典型示例是一个 CRM Web 服务,给定一个客户编号将返回一个类型为 Company 的“对象”,其集合属性为 Contacts。

IE:

将返回一个实例:

能够创建 web 服务,以便可以轻松地从 Visual Studio 中使用它,这样它就可以直接与公司和相关联系人一起工作,这将是非常好的......

这可能吗?

谢谢弗雷德里克

0 投票
3 回答
4570 浏览

java - Java中的对象树导航语言

在我目前正在开发的系统中,我经常需要导航对象树并根据其状态和值采取行动。在普通的 Java 中,这会导致繁琐的 for 循环、if 语句等......是否有替代方法来实现树导航,类似于 XML 的 XPath?我知道有 JXPath 和 OGNL,但是您知道其他用于此目的的库吗?您是否知道任何为特定树导航表达式生成字节码以使处理与 Java 本机 fors 和 ifs 一样快的库?

0 投票
4 回答
5267 浏览

c# - 克隆整个对象图

使用此代码序列化对象时:

我注意到它不会复制关系。有没有办法做到这一点?

0 投票
1 回答
1476 浏览

configuration - StructureMap HowTo:深度对象的条件构造

我很难有条件地创建依赖项。谷歌搜索,我还没有找到使用 BuildStack 和条件谓词的好例子。

这是我在注册表中所做的:

这是显示我所期待的单元测试

这就是我希望 StructureMap 与 IFoo 的正确依赖关系的 AutoWire:

我无法弄清楚如何让GiveUsProperFoosWhenWeDontAskDirectly测试通过。

我想FooA在我需要的时候进行初始化IDoStuffWithFooA,什么FooB时候IDoStuffWithFooB,不管图表中什么时候需要它。 条件谓词的正确语法是什么?

0 投票
3 回答
185 浏览

dependency-injection - 为什么人们谈论 DI 框架“实例化对象图”而不是“实例化对象”?

我正在阅读一本关于 DI 的书,它总是谈论 DI 框架“实例化对象图”。为什么这样说而不是“实例化对象”?

0 投票
2 回答
991 浏览

nhibernate - 如何序列化/反序列化具有对其他对象的引用的 NHibernate 实体?

我有两个 NHibernate 管理的实体,它们具有双向的一对多关系:

AStorage可以包含许多Boxes,并且 aBox始终属于 a Storage。我想编辑一个Box's名称,所以我使用 JSON 将其发送给客户端。请注意,我没有序列化ParentStorage,因为我没有更改它所在的存储。

客户端编辑名称并将其Box作为 JSON 发送回来。服务器将其反序列化回Box实体。

问题是,该ParentStorage属性为空。当我尝试将 保存Box到数据库时,它会更新名称,但也会删除与Storage.

如何正确序列化和反序列化像 a 这样的实体Box,同时将 JSON 数据大小保持在最低限度?

0 投票
3 回答
1662 浏览

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包含对文件中已经存在的其他Items 的引用,我也需要将它们写入文件,但前提是它们尚未写入。否则,当我读回它们时,我将需要以某种方式合并它们的副本。

0 投票
5 回答
4727 浏览

java - Java 对象图访问者库

你知道一个好的java对象图访问者库吗?

我想访问一个对象及其子组件,并在某些条件匹配时执行一些操作。

示例用法:

  • 在一个巨大的域对象图上,将每个 id 重置为null
  • 在一个巨大的域对象图上,Set用一个TreeSet 包含相同元素的实例替换每个对象。

我想要一个库,而不是自定义代码,因为遍历对象图可能很棘手。您必须处理集合、数组、代理等...我曾考虑重用 XStream 的一部分来实现这一点,但看起来并不那么容易:Xstream 访问者更面向对象转换而不是对象自我修改。