问题标签 [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 投票
1 回答
464 浏览

ruby-on-rails - 在递归模型中寻找循环引用的简单测试

我有一个模型,它代表一个由组件组成的组件,组件(就其本身而言)也可能是组件。它看起来有点像这样:

我想确定,当我向组件添加组件时,添加的不是组件本身,也不是链上的另一个组件。实际上,一个程序集不能包含自己,无论您向下多少层。

我的想法是在保存组件时遍历向上的树以查找组件本身作为父级、祖父级等。我试图避免循环引用。

有没有一种“简单的 Rails-ish”方式来做到这一点?还有其他建议吗?

0 投票
2 回答
701 浏览

dependency-injection - 依赖解决作为一个单独的项目..如何?

我正在使用 asp.net mvc 创建一个新应用程序,我正在使用 munq IOC 容器作为我的依赖注入..问题是我想创建一个用于依赖解析的新项目,我可以在其中注册 mvc 项目的所有控制器和基础设施项目的存储库..我必须在我的 mvc 应用程序中添加 Dependency Resolution 项目作为参考作为起点......但问题是为了在这个单独的应用程序中注册控制器,我需要参考mvc 在依赖解决项目本身中......但是这样的事情是不可能的,因为这会导致循环引用..

那么如何解决这个问题呢?或者管理依赖解决方案的最佳方法是什么?我不想最终在 Global.asax 中注册所有内容

0 投票
1 回答
749 浏览

delphi - Delphi:如何将类移出单元;避免循环引用

问题:我想将两个类拆分到自己的文件中,同时避免循环引用。

我有一个包含一些类(以及一些枚举和常量)的单元。任何人都会认出Click and Clack 的 Tappet 兄弟

现在显然我的两个类TClick并且TClick相当复杂。为了便于管理,我想在不破坏任何现有外部代码TClick的情况下拆分并分配TClack给他们自己的单元。

我的第一次破解是:

完美,我有所有相同的课程,Cartalk.pas现在我只需要写:Cartalk_Click.pasCartalk_Clack.pas

当然,问题在于,TTappetBrother并且TSolution没有在本单元中声明。因此,我们在 中添加了对他们居住地的引用uses,看着它失败,并触及我问题的核心:

现在Cartalk和之间有一个循环引用Cartalk_Click

注意:当然,我没有 Cartalk 装置,还有 Click and Clack the tapper 兄弟——这只是一个例子。实际上,我的单​​元中有 3 个类、20 个枚举和 293 个常量。

0 投票
4 回答
4255 浏览

xsd - XSD 模式是否允许循环组?

对于这个 xml:

我有这个架构,它似乎可以很好地针对w3 架构验证服务进行验证,并且该架构可以很好地验证上述 XML。可悲的是,xsd.exe 和其他一些工具报告它是一个错误。那是对的吗?XML 模式是否不允许循环组引用?谢谢!

更新:架构不是我的,不能改变它:(

0 投票
1 回答
568 浏览

python - 循环引用的 Python 问题:

我得到:

请帮助我,谢谢:s

我的代码:

图像.py:

图像块:

0 投票
2 回答
2729 浏览

objective-c - Objective-C:子父类型循环引用,泄漏?

在这样的关系中如何避免内存泄漏?


如果您不知道root应该预先解除分配,您只关心您不再需要它,引用计数如何以及在何处降至零?

此外,Leaks 应用程序甚至会将其检测为泄漏吗?我怀疑我可能被这个咬了,因为我试图追查似乎是泄漏的地方,但 Leaks 声称我没有泄漏。由于 child 仍然引用 parent,反之亦然,我敢说 Leaks 认为对象仍然被引用,因此不会泄漏。

0 投票
3 回答
1738 浏览

python - 带有 python 列表的循环参考

有人可以解释一下吗?

什么是 [...]?

0 投票
1 回答
783 浏览

c# - 序列化代码示例中的无限循环

这里查看以下代码。
这是关于在 wcf 中序列化时在数据契约(对象模型、对象图、域模型)中保留循环引用。

CreateDataContractSerializer生成无限循环(stackoverflow) - 因此也是前面的CreateSerializer方法?

现在也许这些方法没有被使用?我在这里想念什么?

0 投票
2 回答
824 浏览

.net - 自引用只读属性导致的序列化循环异常

当试图从 JSON asp.net 3.5SP1 WebService(不是 WCF,具有scriptservice属性的经典 asp.net WebService)返回对象时,我有一个“在序列化'Geo.Bound'类型的对象时检测到循环引用”错误,由自引用只读属性引起:

简化代码:

  • 我想保留只读属性,因为它用于实现接口。
  • 向 Bound 类添加“IsReference:=True”属性不会改变任何内容。
  • 如果我使用 DataContractJsonSerializer (在 web 服务的上下文之外,像这个例子:链接文本),它可以工作并且我有一个正确的 JSON。
  • 如果我删除“Bds”只读属性,它就可以工作!

我不明白为什么!这是一个只读属性,没有 DataMember 属性,具有 IgnoreDatamember 属性,它不应该被序列化!

如何保持“Bds”属性,摆脱循环引用异常?

谢谢 !

0 投票
3 回答
1218 浏览

graph - How to hash and check for equality of objects with circular references

I have a cyclic graph-like structure that is represented by Node objects. A Node is either a scalar value (leaf) or a list of n>=1 Nodes (inner node).

Because of the possible circular references, I cannot simply use a recursive HashCode() function, that combines the HashCode() of all child nodes: It would end up in an infinite recursion.

While the HashCode() part seems at least to be doable by flagging and ignoring already visited nodes, I'm having some troubles to think of a working and efficient algorithm for Equals().

To my surprise I did not find any useful information about this, but I'm sure many smart people have thought about good ways to solve these problems...right?

Example (python):

A is equal to B, because it represents exactly the same graph.

BTW. This question is not targeted to any specific language, but implementing hashCode() and equals() for the described Node object in Java would be a good practical example.