首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >有没有办法避免C#中的循环引用依赖关系?

有没有办法避免C#中的循环引用依赖关系?
EN

Stack Overflow用户
提问于 2012-11-09 09:57:08
回答 3查看 6K关注 0票数 1

我有一个包含3个项目的解决方案

代码语言:javascript
复制
Project1 - main application
Project2 - graphing application
Project3 - graphing library

数据是从Project1中的对象访问的。项目1引用项目2来创建数据(表单)的显示,项目2引用项目3来完成渲染图形的实际繁重工作。

现在,项目3需要访问项目1的对象/方法,因为这是数据所在的位置。但是当我添加一个从项目3到项目1的引用时,我得到了一个关于循环引用的错误。

我该如何解决这个问题?

谢谢,Reza

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-11-09 10:01:15

你需要保持一个方向的流动..往下。

为了解决这个问题,我通常有一个“模型”项目。数据模型单独存储在此项目中,并且此项目被任何其他需要它们的项目引用。

票数 8
EN

Stack Overflow用户

发布于 2012-11-09 10:02:40

不,这是没有办法的。你有一个循环依赖。您将需要重构应用程序的各层。

我发现的最适合我的层(从最低到最高)

  1. 全局方法和配置(例如基类型扩展方法、系统消息等)。
  2. 数据访问层。没有业务逻辑;只有数据CRUD logic.
  3. Business层。在此处添加业务逻辑。
  4. UI增值层。这就是你的图形库的用武之地。(可选)
  5. UI层。这是您构建最终用户看到的UI的地方。
票数 4
EN

Stack Overflow用户

发布于 2012-11-09 10:03:36

处理循环引用的一种方法是重构应用程序。

创建项目4,并将项目通用的接口放入其中。您可以包含所有其他项目中的项目4。现在在其他三个项目中的一个项目中实现来自该项目的接口,并通过某种工厂机制使用实现(控制容器的反转也很好,但对于更简单的应用程序来说可能有些夸大其词)。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13301036

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档