C#.NET中两个DLL能否在Visual Studio环境下互相引用?
两个.NET DLL项目能否互相引用?
在Visual Studio 2019的C# .NET环境中,两个DLL项目是可以互相引用的——就像你描述的场景(项目B轻微引用C,C大量引用B),只要项目能顺利完成编译,运行阶段也能正常工作。
不过这种循环引用确实不是最佳实践,主要会带来这些问题:
- 构建效率降低:修改其中一个项目后,另一个往往也需要重新编译,拖慢整体构建速度
- 代码耦合过度:两个项目互相依赖,难以单独对其中一个做单元测试、单独复用或维护
- 架构逻辑混乱:违背了依赖倒置、单一职责等设计原则,不利于项目长期迭代和扩展
你当前的重构思路是完全合理的:
- 创建独立的B2项目,让C仅引用B2,同时保证B2不引用C,彻底打破循环依赖
- 调整后的依赖关系:
- 主GUI项目A按需引用B、B2和C
- 原数据层项目B仅引用C,不再被C引用
这种结构能让每个项目的职责更清晰,降低耦合度,后续维护和扩展都会更顺畅。
内容的提问来源于stack exchange,提问作者JosephDoggie
相关产品推荐
相关产品推荐

