问题标签 [circular-reference]

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 回答
4400 浏览

c# - 如何通过 IoC 解决循环引用?

可能重复:
依赖注入可以防止循环依赖吗?

我正在开发一个框架,它将具有各种服务,如 dal、与共享点的集成、异常处理等。

我需要在 IoC 中做这件事,我对这种方法很陌生。[我的工作方式似乎有循环参考]

所以在我看来,我们将有三种类型的项目

  • 一个接口:最好是一个单独的项目
  • 实现接口的具体类项目(服务项目,如异常、dal、集成等)
  • 引导程序\配置(配置器):最好是一个单独的项目,如果它位于“接口”项目中,它将创建与具体类项目的循环引用,因为 IoC 需要接口和具体类的引用。

现在这就是事情

  1. 具体类不应该引用任何其他具体类,因为这最终会创建循环引用。(如果有循环引用,它不会杀死 IoC 的全部目的,还是我错了?)。

  2. 其次,启动项目(单元测试、WCF 服务等)应该首先加载引导程序以获取所有类型的注册,所以我应该将引导程序项目添加到启动项目中,创建一个统一容器的实例[单例]来注册所有类型。为了解决这些类型,我需要在每个其他服务项目中使用相同的实例。

所以我必须将引导程序项目添加到服务项目以进行类型解析。这种方法感觉不对,因为它会导致与我在第 1 点中提到的相同的问题(每个服务项目都将包含服务项目的引用)。

怎么办?我尝试在注册时通过属性注入将 UnityContainer 作为属性添加到每个具体类中。我什至不确定这是否是正确的方法。我主要关心的是实现结果的最佳实践所以如果你能指导我完成这个我将非常感激......

先感谢您!

还有一件事,您更喜欢性能、配置、代码内类型注册还是实例注册?

如果需要,我可以上传演示项目。我可以解释一件事。Dal 使用异常管理器,异常管理器使用翻译器获取用户友好消息,翻译器使用 DAL 获取用户友好消息。这是我们有循环引用的一种情况。但是如果我们互相添加引用,可能会有很多。

[更新 - 包含示例代码] 我们还没有实现 IoC,所以你不会看到任何对它的引用 public bool Update() {
bool result = false;

0 投票
5 回答
6015 浏览

json - 如何解决Many TO Many hibernate双向映射导致的json序列化器中的循环引用?

我正在尝试将 POJO 序列化为 JSON,但陷入循环引用问题。@JsonBackReference我知道如何使用and处理一对多和反向关系@JsonManagedReference

我的问题是双向多对多关系(例如,一个学生可以有很多课程,每门课程可以有很多学生注册),父母参考孩子和孩子参考回到父母,这里我的序列化器死了。根据我的理解,我不能@JsonBackReference在这里使用,因为属性的值类型必须是 bean:它不能是 Collection、Map、Array 或枚举。

有人可以告诉我如何处理这种情况吗?

0 投票
2 回答
598 浏览

excel - AS2:如何通过百分比计算迭代X次(包含循环引用)?

这是 Excel / 数学向导的问题。

我在进行基于具有循环引用的公式的计算时遇到了麻烦。计算已在 Excel 工作表中完成。

我从 Excel 文件中扣除了以下等式:

a = 240000

b = 1400 + c + 850 + 2995

c = CEIL( ( a + b ) * 0.015, 100 )

在迭代之后,A+B 的总数应该是 249045(其中 b = 9045)。

在 Excel 文件中,这给出了一个循环引用,设置为允许迭代 4 次。

我的问题:在 AS2 中重新创建计算,经历 4 次迭代。

我数学不够好,无法解决这个问题。

有人可以帮我吗?

编辑:我更改了变量 a 中数字的格式。抱歉,我来自 DK,我们使用句点作为千位分隔符。我已将其删除以避免混淆:-)

第二次编辑:第三个等式,C 使用 Excels CEIL() 函数将数字四舍五入到最接近的百分之一。

0 投票
1 回答
317 浏览

dependency-injection - 使用 IoC 和循环参考解决这个问题的最佳设计是什么

我将尝试以简单的方式进行解释。

我有一个包含 4 个项目的解决方案 (c# 4.0)

  • 框架
  • 达尔
  • 领域
  • Web应用程序

所以我的问题是:

框架是配置我的 Unity IoC 的正确位置吗?我想通过代码而不是 xml 进行配置,所以框架需要知道 DAL 的引用,但 DAL 已经知道框架。

我所有的项目都知道框架,那么我在哪里配置我的 IoC?

0 投票
1 回答
282 浏览

c# - 如何仅在具有循环引用的层次结构中加载实例一次?

我有一个像这样的对象结构:

关系包含有关父实例和子实例的所有信息,我想在父实例和构成关系的所有子实例上共享相同的关系实例。

现在,当我从数据库加载我的实体时,我从顶部实体开始,然后加载关系。我想我可以缓存我正在建立的关系并为孩子们重用相同的实例。但这不适用于创建我需要加载所有子实体的关系,因此每个子实体都尝试重新创建我当前试图在创建之前获取子实体的相同关系,所以我最终创建了所有在我可以将关系添加到缓存之前,树中我下面的关系实例。

有没有办法在不使孩子成为我的关系的可设置属性的情况下解决这个问题,所以我可以在创建孩子之前创建对关系的引用?

0 投票
4 回答
503 浏览

python - 如何根据规则执行排序但重复项目以解决循环引用?

为了更清楚地解释我的问题,我将从解释我面临的现实案例开始。

我正在构建一个物理面板,上面有很多单词,可以选择性地点亮,以组成句子。这是我的情况:

  1. 我知道我想显示的所有句子
  2. 我想找出[one of] 最短的一组 ORDERED 单词,它可以让我显示所有句子

例子:

我试图通过“位置规则”来解决这个问题,在所有句子中使用的所有单词集中查找每个唯一单词,哪些单词应该在它的左侧或右侧。在上面的示例中,“on”单词的规则集是“left(A, dog, cat, is) + right(the, table)。

这种方法适用于琐碎的案例,但我的现实生活中有两个额外的困难让我陷入困境,这两个都与重复单词的需要有关:

  1. 句子重复:“the cat is on the table”有两个“the”。
  2. 循环引用:在“一只红猫”+“我的猫在桌子上”+“那张桌子是红色的”三个句子中,规则规定 RED 应该在 CAT 的左侧,CAT 应该在TABLE 和 TABLE 的左侧应位于 RED 的左侧。

因此,我的问题是:

研究和解决这类问题的算法类别是什么(甚至更好:具体的算法是什么)?你能发布一些参考或代码示例吗?

编辑:复杂程度

从第一轮答案看来,实际的复杂程度(即一个句子与另一个句子有多大不同)是一个重要因素。所以,这里有一些信息:

  1. 我有大约 1500 个句子要表示。
  2. 所有句子本质上都是对大约 10 个句子的受限池的修改,其中只有几个单词发生了变化。在前面的例子的基础上,这有点像我所有的句子都会谈论“某人的宠物相对于一件家具的位置”或“某人的家具的物理描述”。
  3. 用于构建所有句子的唯一词数<100。
  4. 句子最多8个字。

对于这个项目,我使用的是 python,但任何合理可读的语言(例如:不是混淆的 perl!)都可以。

提前感谢您的宝贵时间!

0 投票
3 回答
8225 浏览

c# - 如何修复这个“循环引用”c#

我有一个类库来保存我的对象,所以:

xxxCommon\Objects\Customer.cs

xxxData\DC\CustomerDC.cs(数据组件)

  • 此类调用许多 procs 并返回 xxxCommon\Objects 中的对象

我现在的主要问题是循环引用,要进行“延迟”加载,我需要将电话的 get 属性设置为 xxxData\DC 中的函数,如何避免这种情况?

0 投票
3 回答
14481 浏览

node.js - 在 Nodejs 中,当我 console.log 一个 req 对象时, [Circular] 引用了什么?如何确定

在 Nodejs 中,当我 console.log 一个 req 对象时,[Circular] 是什么意思?

这是一个针对基本 nodejs 示例的示例 console.log(req)。注意 request.socket._readWatcher.socket 是一个 [Circular]。这是否意味着它指的是自己?我怎样才能取消引用它?

更新

由于我显然没有尽可能清楚,我如何才能取消引用循环引用的元素?它总是父元素吗?

另外值得注意的是,昨晚我了解了 Utils 类和检查方法。这可能会给我提供比我合理想知道的更多的信息;)

0 投票
3 回答
2390 浏览

mysql - MySQL中的一对多,父子表循环关系

我面临这个问题:

我有一个父表和一个子表,一个父母可以有多个孩子,标准故事。

这些是约束:

  • 每位父母必须至少有一个孩子,
  • 每个父母都必须有一个最喜欢的孩子,
  • 每个父母都可以有一个最不喜欢的孩子

如何在 SQL 中设计这个?

由于循环关系,我不确定是否可以使用标准的父子表:

我正在考虑使用桥接表,但不确定如何对这些约束进行建模。


编辑:只是为了增加一些清晰度,这里是问题上下文的一部分:

有 Price 表(子)和 PriceGroup 表(父)。

PriceGroup 有多个价格,一个强制 mainPrice (favouriteChild) 并且可以有一个 officialPrice (leastFavouriteChild)。

以下内容与问题无关,但对上下文有所说明: 价格根据它们引用的产品进行分组,一个产品可以有多个价格 - 然后将这些价格分组到价格组中,每个组都需要参考一个主要价格和官方价格(如果有的话)。

0 投票
1 回答
636 浏览

node.js - 那可能在nodejs中存储循环引用对象吗?

我想跨所有服务器扩展我的传入请求。

我可以在集群中通过声明全局变量将所有传入请求存储在数组中来完成。

但是如果我在另一台服务器上创建另一个实例,我无法取回存储请求:

我找到了使用 memcached/redis 存储循环对象(请求)的方法,但是当我尝试

无论如何要缩放圆形参考对象?