日期:2014-05-20  浏览次数:21082 次

究竟为什么解决方案里的项目不能彼此循环引用?
同一个解决方案下,项目A引用项目B,项目B引用项目A,会造成循环引用错误。我不明白究竟为什么不能这么做,循环引用的时候发生了什么? 另外,项目A引用项目B,Visual Studio IDE究竟又干了些什么?

------解决方案--------------------
这种问题我也测试,比如:数据访问层,业务逻辑层,有些访问可能想相互引用,结果造成循环,程序报错.

其实这样规则是对的,只有业务逻辑层可以访问数据访问层,反之不行.


------解决方案--------------------
这个道理很简单,要编译A,首先要编译A引用的项目B,要编译项目B,必须首先编译B引用的项目A。
那么你说应该先编译哪个项目。
如果你非要循环引用,你不要让A引用项目B,而是直接引用项目B生成的b.dll。
不过缺点是,如果你要给B添加新的成员,你需要让B项目先引用旧版本的a.dll,编译,然后再让A编译。