c# - 如何解决循环依赖

标签 c# asp.net asp.net-mvc-3 circular-dependency

我已将另一个项目“xml”添加到我的项目“synchronise”中。

因此 program.cs(在 xml 项目中)运行 getDetails(),它在同步项目中运行 FectchDetails() 并将结果作为对象返回给 xml/getDetails()。

如果 Synchronise/FecthDetails() 发生错误,我想重新运行 xml/getDetails()。

我试过 xml.getDetails,但它说它不存在,因为它没有引用项目,所以我尝试将 xml 项目添加到 synchroinse,但它告诉我我不能这样做,因为它会导致循环依赖。 ...我该如何解决这个问题

谢谢

最佳答案

基本上,您有一个项目 X 依赖于项目 Y (X --> Y) ,项目 Y 依赖于项目 X (Y --> X) .

换句话说,类似于:( X <---> Y)

这种情况意味着编译器不知道先编译什么,因此报错。

要解决此问题,请寻找可从一个或两个项目中移出的通用事物/逻辑片段,并创建可在其他两个项目之前构建的第三个项目。

将所有常见的东西放在这个新项目中,你应该没问题;你的依赖关系应该如下所示,如果先编译 X 或 Y 并不重要,只要 Z 在它们之前编译:

( X --> Z <-- Y )

关于c# - 如何解决循环依赖,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21853067/

相关文章:

c# - 从 MVC HtmlHelpers 中的 ViewData 扩展对象

asp.net - Azure Web应用程序找不到连接字符串

c# - 在 WebControl 中处理按钮单击事件

asp.net-mvc - ASP.MVC 应用程序常量,最好/最优雅的方法是什么?

c# - 当用户单击组合框时将新项目添加到组合框中

c# - LINQ to SQL ForeignKeyReferenceAlreadyHasValueException 错误

c# - 该进程无法访问该文件,因为它正被另一个使用 streamwriter 的进程使用

html - 希望页脚留在底部,但不是绝对的

c# - Microsoft JScript 运行时错误 : 'Sys' is undefined (in mvc3 c# razor)

asp.net-mvc-3 - 集成 Solr for Asp.net MVC 3..Solrnet 或 Ajax-Solr