我正在设计一个可重用的类库,其中包含 2 个名为 core.xml.dll 和 core.string.dll 的程序集(其中包括)。
xml 程序集引用字符串程序集,以便使用一些字符串辅助方法。
但是,现在有一个字符串方法可以从使用 xml 程序集中包含的方法中受益。
如果我从字符串程序集引用 xml 程序集,我将创建一个循环依赖项,并且将无法从源代码构建这两个程序集。(即鸡和蛋的问题)。
为了遵循“不要重复自己”的原则,我想避免在两个程序集中重复功能。如果我在实现中发现错误,我只想在一个地方修复它。
虽然我可以将程序集合并为一个,但这并不理想,因为它会降低程序集的凝聚力。
我需要重新构建和重新部署整个程序集,只是为了对特定类进行小改动。此外,最终,由于依赖关系如此之多,我最终可能会得到一个巨大的库程序集。
那么在一组可重用的库程序集的上下文中,在这里使用的最佳方法是什么?另外,.NET 框架本身是如何处理这个问题的?
(在 Reflector 中,System.Configuration.dll 似乎引用了 System.XML.DLL,反之亦然。这实际上是否正确,如果是这样,如何管理循环依赖关系?)