在同一个解决方案中,有三个项目如A、B和C,A和B分别编译为dll,C编译为exe。如何才能做到A可以调用B,同时B可以调用A?我在C中添加了对A和B的引用,然后A中添加对B的引用,在A中可以使用B了;但在B中添加对A的引用时,提示循环依赖引用错误。这样的话,就不能在B中使用A。应该怎样解决这个问题呢?

解决方案 »

  1.   

    .net这样做其实是对的,架构分析的时候应该绝对避免循环依赖
    你应该C依赖A,A依赖B,B是最底层的,只依赖.net,
    最好的情况是C不依赖B,而是通过A
      

  2.   

    把A的代码文件copy到B里头,删掉A
      

  3.   

    你最好把类的结构划分好
    比如c是最上面的应用层(界面的调用等),a是最低层(数据库的操作等),b是中间层(功能的实现等),这样就可以c调用b,b调用a,不会出现循环调用的问题。
      

  4.   

    楼主,.net这样限制是对的,AB互相调用,那样程序会搞得很乱,让人难以理解。建议改成分层结构,高层可调用底层