既然不想直接引用,貌似也只能在C类进行对D功能的封装的
至于Fun的参数其实没有必要用D对象,可以对参数做个分拆,这样可以避免第三方调用C。fun需要直接依赖到D

解决方案 »

  1.   

    好像不行,用到的dll就要引用进来
      

  2.   

    正常情况下,如果有意不暴露D对象的,那么都会在C中作个高度封装,而从C爆出来的接口也不会涉及到直接关联D对象的,任何涉及D对象的操作都应该在C类中构造和完成的
      

  3.   

    我猜楼主的想法应该不是引用不引用D的问题,而是不想在第三方调用中直接涉及到对D对象的操作~ 希望将关于D的任何信息在在第三方中进行屏蔽、不知道我理解是否正确
      

  4.   

    把D封装在C里,不然只要使用到public void Fun(D d);的地方都用引用dll,因为D已经暴露了。