プロジェクトA (メインプロジェクト)でWinFormを取得しました。これは、wpfユーザーコントロールをホストし、 Bと呼ばれる別のプロジェクトの下で維持されます。
ユーザーコントロールのボタンをクリックすると、プロジェクト「 C」にあるサーバーにクエリを実行し、データを取得して、ホストされているwpfユーザーコントロールに表示したいと思いました。カスタムコントロールのみを含むプロジェクトBにプロジェクト「 C 」への参照を配置するのは悪いコーディング慣行であることを私は知っています。
プロジェクトA (メインプロジェクト)でWinFormを取得しました。これは、wpfユーザーコントロールをホストし、 Bと呼ばれる別のプロジェクトの下で維持されます。
ユーザーコントロールのボタンをクリックすると、プロジェクト「 C」にあるサーバーにクエリを実行し、データを取得して、ホストされているwpfユーザーコントロールに表示したいと思いました。カスタムコントロールのみを含むプロジェクトBにプロジェクト「 C 」への参照を配置するのは悪いコーディング慣行であることを私は知っています。
プロジェクトの依存関係を最小限に抑えるには、コントロールに必要な操作を反映するインターフェイスをコントロール プロジェクト (B) に作成します。
このインターフェイスを実装するクライアント (A) プロジェクトにクラスを実装します (データ プロジェクト (C) から必要な情報を取得し、インターフェイス メソッドを介してそれを返します)。
コントロールを初期化するときに、A で構築された (インターフェイスを実装する) サービス クラスをコントロール B に渡します。
3 つのプロジェクトすべてで共有できる単なるクラス ライブラリである別のプロジェクトを作成します。プロジェクト間で共有する必要があるインターフェイスやクラスの実装をクラス ライブラリに配置し、それらをサーバー プロジェクトとユーザー コントロール プロジェクトで使用します。