2つのプロジェクトがあります。
Project#2にはProject#1への参照があります
Project#1でProject#2を参照する必要がありますが、vs.netは循環依存について不平を言っています。
これから抜け出す方法はありますか?
2つのプロジェクトがあります。
Project#2にはProject#1への参照があります
Project#1でProject#2を参照する必要がありますが、vs.netは循環依存について不平を言っています。
これから抜け出す方法はありますか?
絶対違う。循環依存は、設計が悪いことを示しています。厳しく言うつもりはありません。これにはいくつかの方法があります。
1) 共通コードを別のプロジェクト、たとえば Project#0 にリファクタリングできます
2) デザインを修正することができます。これはおそらく進むべき道です。
Uncle Bob には、パッケージングの原則に関する優れた記事があり、非循環依存の原則が含まれています。 http://www.objectmentor.com/resources/articles/granularity.pdf。これを読んで、循環依存がなぜ悪いことなのかを理解してください。
プロジェクトをリファクタリングして、共通の要素をプロジェクト#1とプロジェクト#2の両方が参照する「プロジェクト#0」に取り出します。
2つを1つにマージするか、再設計します。
これは、設計に問題があることを示しています。2つ以上のタイプが相互に認識している必要がある場合は、それらが同じアセンブリに存在する必要があります。
いいえ。プロジェクトを適切に構成します。抽象化に基づいたある種の順序付け(低レベルから高レベル)を使用してみてください。
循環依存とは、これらが 2 つの独立したプロジェクトではなくなったことを意味します (1 つだけをビルドすることは不可能であるため)。
一方向の依存関係のみを持つようにリファクタリングするか、それらを単一のプロジェクトにマージする必要があります。
前の質問に見られるように循環参照を行うことができますが、ここで既に述べた理由により、循環参照を行うべきではありません。
私は本当に賢い人になるつもりはありませんが、より良いプログラム設計がその答えです。
これは設計上の欠陥のようで、他には何もありません。再設計が解決策です。
それは良い解決策だとは思いませんが、それでも次の手順に従うことで解決できます