我有一个情景,编译器报错说我缺少必需的引用。我有3个程序集:
A.DLL public class BaseClass
B.DLL (引用 A.DLL) public class DerivedClass : BaseClass
C.DLL var derived = new DerivedClass();
在 C.DLL 中,我只引用了 B.DLL(我只需要访问 DerivedClass)。但是编译器会报错,说我还需要引用 A.DLL。这完全破坏了封装,而且我不确定为什么需要这样做(因为 B.DLL 引用了 A.DLL)。
编辑:使用“破坏封装”的词不太恰当。我的意图是这会导致项目(C.DLL)似乎有一个额外的编译时约束,因为我只从 B.DLL 实例化类型,而不是从 A.DLL 实例化类型。
我希望能够删除这个编译时要求,主要是因为 B 和 C 在同一个解决方案中,但 A 不在。
A.DLL public class BaseClass
B.DLL (引用 A.DLL) public class DerivedClass : BaseClass
C.DLL var derived = new DerivedClass();
在 C.DLL 中,我只引用了 B.DLL(我只需要访问 DerivedClass)。但是编译器会报错,说我还需要引用 A.DLL。这完全破坏了封装,而且我不确定为什么需要这样做(因为 B.DLL 引用了 A.DLL)。
编辑:使用“破坏封装”的词不太恰当。我的意图是这会导致项目(C.DLL)似乎有一个额外的编译时约束,因为我只从 B.DLL 实例化类型,而不是从 A.DLL 实例化类型。
我希望能够删除这个编译时要求,主要是因为 B 和 C 在同一个解决方案中,但 A 不在。