我继承了一个经过深思熟虑的代码库,并遇到了一些循环引用问题。我的团队目前没有时间或资源去做一个巨大的重构,所以我想知道是否有一些我可以翻转的开关说'#34;原子地构建这两个dll。"
简化示例:
DLL D0:
class A1 -> References B1
class B1 -> References A1
A1和B1类相互引用,并且因为它们在同一个DLL中,这很好 - 但是它们没有多少共同之处所以我想把它们分成不同的dll
但是,由于循环引用问题,以下情况是不可能的:
DLL D1: class A1 -> References D2.B1
DLL D2: class B1 -> References D1.A1
我希望能够告诉MSBuild构建(D1 + D2),好像所有代码都在一个dll中一样。有什么我可以在这里做的,或者我是否遵循SOP和#34;破解它?"
免责声明:据我所知,这意味着我的模型存在更大的问题(最明显的是接口的使用不当),但在小公司中,现实世界的场景要求我向后弯腰修复生产错误最佳实践的费用。
答案 0 :(得分:12)
我的团队目前没有时间或资源来做大事 重构
所以......不要这样做:
但它们并没有太多共同点,所以我想将它们分解为 分开的dlls。
在您可以对整个解决方案进行重大重构之前不要管它。
在这种情况下,重构组织的压力将迫使大量的重构下游。你有更大的问题需要处理。我去过那儿。我觉得你。祝你好运。