5

よく考えられていないコード ベースを継承したため、循環参照の問題が発生しています。私のチームには現在、大規模なリファクタリングを行うための時間やリソースがありません。そのため、「これらの 2 つの 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

すべてのコードが単一の dll にあるかのように、MSBuild にビルド (D1 + D2) を指示できるようにしたいと考えています。ここで何かできることはありますか、それとも SOP に従って「ハックイン」する必要がありますか?

免責事項: これは、自分のモデルにもっと大きな問題があることを意味していることを理解しています (最も明白なのはインターフェイスの不適切な使用です)。ベストプラクティス。

4

1 に答える 1

12

私のチームには現在、大規模なリファクタリングを行うための時間やリソースがありません

だから...これをしないでください:

しかし、それらにはあまり共通点がないので、別々のdllに分割したいと思います。

ソリューション全体に大幅なリファクタリングを適用できるようになるまで、そのままにしておきます。

これは、組織のピーブをリファクタリングすると、ダウンストリームで大量のリファクタリングが強制される場合です。そして、あなたは対処すべきはるかに大きな問題を抱えています。そこに行ったことがある。心中お察しします。頑張ってください。

于 2013-01-16T19:07:08.060 に答える