对参考文献的循环依赖

时间:2017-01-01 15:32:11

标签: dll reference dependencies

此时我有一个动态抽象工厂,其中包含类Factory的单例实现,我存储了所有工厂。每个工厂都有自己的类型,可以创建实例。

这些工厂还获得了我创建的RegisterType方法,以便从该项目外部注册类型(DLL)。

我想从项目外部注册一个类型。但是为了做到这一点,ProjectA和projectB必须知道彼此的信息。

所以我的问题是,projectA和projectB如何在不收到此错误的情况下了解彼此"对引用的循环依赖"。

1 个答案:

答案 0 :(得分:0)

This blog post from Steve Smith直接解决了我的问题。

重新阅读您的问题,我发布的链接不相关,因为您正在处理2个项目。

对于大多数项目(网络,桌面,甚至大多数api),您通常有一个项目是您的入口点,您的其他项目应该包含相关代码或基础设施代码,应该没有2个双向(或者更多)项目。

使用IoC框架并注册依赖项可能是合适的,您可以在ProjectA中执行此操作,并从ProjectB提供给您的工厂类型。

确保在将这些工厂(和其他类型)传递到ProjectB中时使用接口进行抽象,其中实现驻留在ProjectA中,然后这些接口可以位于ProjectB中,不需要任何向后依赖。