问题标签 [circular-dependency]
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.
c# - 我的 C# 项目中的循环引用
我有以下情况:
一个
MyCompany.MyProject.Domain
包含我的域模型和部分类(例如Contact
)的项目。我想用一个属性“扩展”(通过部分类,而不是扩展方法)我的
Contact
类,该属性Slug
将为我提供一个简单的 URL 友好的名字和姓氏文本表示。我的项目中有一个字符串扩展方法
ToSlug()
,它完全符合我在 2) 中的要求。Utility
MyCompany.MyProject.Utilities
问题:我的
Utility
项目已经在引用我的Domain
项目,这意味着我无法在不引起循环引用的情况下让Domain
项目看到Utility
项目的方法。ToSlug()
我不热衷于创建另一个项目来解决这个问题,我真的想保持Slug
共享逻辑。
我该如何解决这个问题?
.net - 在 .NET 框架中遇到自递归程序集引用
我正在编写一些 C# 代码,递归地遍历基本程序集的引用程序集,构建这些引用的有向无环图以进行拓扑排序。我通过Assembly 类上的GetReferencedAssemblies()方法来做到这一点。
在测试代码时,令我惊讶的是,.NET 框架中的某些程序集显然将自己列为程序集引用。一个这样的例子是System.Transactions, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089列出了System.Transactions, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089作为参考,可以在 Reflector 中验证.
一旦我意识到这一点,通过比较 AssemblyNames 来打破无限递归是微不足道的,但我对这种情况很好奇,因为我自己无法生成自递归程序集。(我可以在谷歌上找不到任何信息,并且将自己添加为参考不会使生成的程序集自递归。)
简而言之:自递归程序集引用真的“洁净”吗?一些系统程序集引用自己的理由是什么?
谢谢。
circular-dependency - 如何在多级引用和依赖项中检测循环逻辑或递归
我有一个像这样的多级依赖关系图,我需要检测该图中的任何循环引用。
A = B
B = C
C = [D, B]
D = [C, A]
有人有这样的问题吗?
有什么解决办法???
谢谢和对不起英语。
=========更新==========
我有另一种情况。
1
2 = 1
3 = 2
4 = [2, 3]
5 = 4
在这种情况下,我的递归代码在“4”引用中迭代了两次,但是这个引用不会生成无限循环。我的问题是要知道函数何时迭代引用不止一次并且不是无限循环,何时是无限循环,以通知用户。
1 = 4
2 = 1
3 = 2
4 = [2, 3]
5 = 4
这种情况与第二个例子有点不同。这会产生一个无限循环。我怎么知道案例何时产生无限循环?
c++ - 懒惰的 C++ - 鸡和蛋的问题
根据我从这个问题得到的反馈,我有兴趣在我的 OSX 笔记本电脑上使用 Lazy C++。Lazy C++ 网页提供适用于 Linux 和 Windows 的二进制文件,但没有适用于 OSX 的二进制文件。还有一个下载 Lazy C++ 源代码的链接,但它需要一个 lzz 二进制文件作为构建过程的一部分。这会造成我需要一个 lzz 二进制文件才能获得一个 lzz 二进制文件的情况。
如何在没有 lzz 二进制文件的情况下在笔记本电脑上构建 lzz?我是否需要在 Linux 或 Windows 机器上进行部分构建以预处理 lzz 源文件,然后将源传输到我的笔记本电脑进行构建?或者还有什么我应该尝试的吗?
dependency-injection - 依赖注入:注入部分初始化的对象
这个问题是关于 Unity Container 的,但我想它适用于任何依赖容器。
我有两个具有循环依赖关系的类:
从技术上讲,如果将它们视为单例,则可以为它们实例化并正确注入依赖项:
当我尝试对 Unity 执行相同操作时,我得到 StackOverflowException:
我了解 Unity 试图保护我免于使用部分初始化的对象,但我希望将此保护作为一种选择,而不是一种义务。
问题:当前行为是否可禁用?
database-design - 数据库设计:循环依赖
想象一下以下数据库:
表“公司”具有字段 id、名称和旗舰产品 ID。表“产品”具有字段 id、name 和 company_id。
一个公司必须有一个旗舰产品(1:1 关系),所有产品都有一个公司(1:N 关系)。
使用 MyISM 等存储引擎时,上述场景应该没有任何问题,但使用 InnoDB 等引擎时,INSERTing new data 时会出现问题。
除了允许初始 INSERT 的 NULL 关系之外,还有什么好的解决方案?
总而言之,一家公司必须有一个旗舰产品。
vb6 - VB6、ActiveX:无法创建对 OCX 的引用
我在创建用户控件时遇到了一点问题。
虽然我已经制作了一个控件,但我想在另一个控件中使用。
一旦我想在组件列表中添加引用(希望将其用作已编译的 OCX),就会出现消息“Wechselseitiger Verweis zwischen Projekten nicht zulässig”,意思是“不允许项目之间的循环引用”
奇怪的是,我要使用的控件没有对第一个项目的任何类型的引用。
我已经使用作为 Visual Studio 工具提供的依赖项walker 对此进行了检查,但它也表示没有对其他控件的引用。我已经使用文本编辑器打开了项目文件以检查引用的 OCX,但没有找到。
为了避免一些评论:更改为 .NET 或任何其他语言不是一种选择。
评论:为什么,添加未编译的 .ctl 文件似乎可行。现在我可以继续我的工作了。但无论如何,我对解决方案以及它不适用于当前星座的原因感兴趣。
投票赞成:我一直在查看所有文件,现在我只是简单地将所有控制文件添加到项目中,而不是创建 OCX。我会放弃的。谢谢大家...
c++ - C++ 类依赖
我的班级有一些问题,因为它们都相互依赖,如果没有声明另一个,就不能声明一个。
如您所见,“块”类需要知道“板”是什么,反之亦然。提前致谢!
c# - C#循环依赖解题技术
在将我的 C# 应用程序分层时,我通过以下方式解决了层之间的循环依赖问题:
任何人都可以建议我任何更好的解决方案,因为 sln 中的“通用”项目对我来说是多余的吗?
json - 从 Jersey 获取具有循环依赖关系的 JSON
我正在编写一个使用 Jersey 和 JAXB 的服务。我的类使用@XMLRootElement、@XMLElement 等进行了注释。我在两个类之间存在循环依赖关系,因此我使用@XMLTransient 对循环依赖属性进行了注释。因此,当我调用我的服务时,我将 xml 作为默认值,它运行良好。但是,当我尝试使用 JSON 时,我会得到重复的行,例如:
{"name":"dere","entries":[{"points":0,"wins":0,"losses":0,"ties":0,"leaderboard":{"name":"dere ","entries":[{"points":0,"wins":0,"losses":0,"ties":0,"leaderboard":{"name":"dere","entries":[ {"points":0,"wins":0,"losses":0,"ties":0,"leaderboard":{"name":"dere","entries":[{"points":0, "wins":0,"losses":0,"ties":0,"leaderboard":{"name":"dere"," ... 等等。
因此,当我使用 JSON 时,循环依赖似乎存在问题。我想避免循环依赖项出现在 JSON 输出中,就像它在 XML 中完成一样(因为 @XMLTransient 注释)。
任何人都可以提供有关我如何能够实现这一目标的任何见解吗?