我有一个场景,编译器抱怨我缺少所需的参考。
我有 3 个程序集:
动态链接库
- 公共类 BaseClass
B.DLL(参考A.DLL)
- 公共类 DerivedClass : BaseClass
C.DLL
var 派生 = 新 DerivedClass();
在 C.DLL 中,我只引用 B.DLL(我只需要访问 DerivedClass)。
编译器给出一个错误,说我还需要引用 A.DLL
这完全破坏了封装,我不确定为什么需要这样做(因为 B.DLL 引用 A.DLL)。
编辑:关于“打破封装”的错误选择。我的意图是这会导致对该项目(C.DLL)的额外编译时间约束,因为我只是从 B.DLL 实例化类型,而不是从 A.DLL 实例化类型。
我希望删除这个编译时要求,主要是因为 B 和 C 位于同一个解决方案中,但 A 没有。