我有 3 个用 C# 编写的程序集,即 A.exe、B.dll、C.dll
- C.dll 定义了一个公共(public)接口(interface) IfaceC。
- A.exe定义了一个公共(public)类ClassA:IfaceC
- B.dll 使用 ClassA 但没有明确使用 IfaceC
我的问题:是否可以不引用 C.dll 来编译 B?我不使用它,我想阻止开发人员使用它(即不小心在 B 的代码中键入“IfaceC”)。但是 A.exe 仍然需要它。
编辑
鉴于我的架构,A 可以引用 C 但不能引用 B,C 不能引用 B 也不能引用 A,B 不能引用 A 但不能(如果可能)C
最佳答案
没有。您需要引用任何包含基类型或由您使用的任何类型实现的接口(interface)的程序集。
关于C# 使用实现接口(interface)的类而不添加对定义接口(interface)的程序集的引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7646769/