私は大きくて太くて醜いレガシープログラムを持っています。私が達成しなければならなかった1つのタスクは、プロジェクトAに新しいクラスを追加することでした。プロジェクトBはプロジェクトAを参照していますが、追加する必要のある機能は、プロジェクトBのクラスのメソッドによって異なります。もちろん、循環参照が作成されるため、AからプロジェクトBを参照することはできません。同様の状況で、私のアプローチは、プロジェクトCを作成し、依存関係をAとBからプロジェクトCに移動し、 AとBの両方にそれを参照させることでした。
ただし、この特定のタスクでは、非常に多くのコードを移動する必要があるため、ソリューションに大きな混乱が生じます。
今のところ、必要なクラスのインスタンスをボックスに入れて渡し、object
リフレクションを使用して実行時に必要なメソッドにアクセスしています。
コードをプロジェクトCに移動せずにこれを解決する他の(より良い)方法はありますか?