我的.NET解决方案中有三个项目。
主要项目和两个班级图书馆项目。

我发现我需要交叉参考课程库项目。
我可以那样做吗? 它是安全的还是有一些考虑因素?

有帮助吗?

解决方案

当项目在一个解决方案中时,IDE将不允许您。有一些微妙的方法来混淆它。但是,由于尚不可用,因此无法从头开始构建解决方案(即构建 +重建)。重构,您可能需要两个都可以参考的第三个组件。

其他提示

循环引用是 可能的 (通过命令行和一些技巧;不是通过IDE),而是主要的痛苦;不要做!

要么添加一个 额外的 组装共同类型,或合并两个库。

从许多方面来说,更简单的东西……无数的DLL并不意味着您已经达到了纯度 - 这只是一团糟。

当我遇到这个问题时,我有 创建的类仅具有属性。 可能 Employee, Customer, Product, , 任何。这些类无需参考任何其他项目,因此多个项目可以参考它们。

属于这些对象的方法(Employee, Customer, Product)然后在其他项目中参加自己的课程。

我经常遇到这种情况的一种情况是在三层应用程序中 - 演示层,业务层和数据访问层。我希望DAL检索数据并填充员工对象,该对象将返回到BLL。如果员工类在BLL中并且具有属性和方法,则没有简单的方法可以在DAL中填充员工对象并将其返回到BLL - 因为BLL必须对DAL进行引用,因此DAL反过来不能参考BLL。使用仅属性类创建单独的项目(Employee, Customer, Product)是解决此问题的一种方法。

如果通过“交叉引用”,则意味着您想执行以下操作:

1)项目 主要的 包含参考 图书馆-Alpha图书馆 - 贝塔

2)项目 图书馆-Alpha 包含参考 图书馆 - 贝塔

3)项目 图书馆 - 贝塔 包含参考 图书馆-Alpha

那就不要。 Visual Studio将无法构建 主要的 直到它构建为止 Αbeta. 。它将无法构建 Α 直到它构建为止 beta. 。它将无法建立 beta 直到它构建为止 Α. 。因此,它将无法构建任何东西。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top