3个工程A(业务逻辑),B(数据访问),C(服务实现类)
C引用A,A引用B,现在A和B能编译通过,但是C无法通过,提示需要添加对B的引用,而且C添加了对B的引用后可以编译通过了,但是按道理是不需要对B直接引用的,不知道为什么,请大侠们赐教。

解决方案 »

  1.   

    C是直接调用A里的方法啊,没有直接跟B里的内容打交道,也需要直接引用B吗?大侠
      

  2.   

    to colinfang2006大侠,问一下,是不是如果是引用的程序集就不需要这样子直接引用,目前我是引用的工程
      

  3.   

    第一,不就多加一行using么,用得着弄这么复杂么
    第二,我写了个测试代码,只要用到B里面的一些数据结构,就必须引用B。
      

  4.   

    我刚才写了个demo,我感觉不用吧,以前写代码没注意这个问题。
    引用了C引用了A了,A又引用了B的。你自己写个test试试,至少我这测试不需要
      

  5.   

    C引用A, 只能使用A里面的方法
    A引用B, 只能使用B里面的方法如果C使用了B里面的方法,就需要引用B了~
      

  6.   

    A(业务逻辑),B(数据访问),C(服务实现类)
    C引用A,A引用B,C需要用B,我想是会不会是因为B里面有你需要的数据模型。
    比如你使用Linq To SQL来实现数据访问,那么B在提供数据为访问的同时,也提供的数据模型;好像我记得应该是:
    A(业务逻辑),B(数据访问),C(服务实现类),D(自定义数据模型)
    A引用B,D
    C引用A,D
    这是我的一点想法,有问题,请指正!
      

  7.   

    我觉得如果真的像楼主那样说的话,应该是没问题的,可是我估计业务逻辑(A)里面用什么数据与C联系呢,或许你觉得只是使用的方法,但是按照一般的逻辑这里面应该有一个数据实体层吧,三个层面都要使用数据实体,或许你的数据实体并没有单独一层出来,因此你的A必须要引用B