Windowsアプリケーションでは、定期的に操作を開始する必要がありますが、時間がかかることがあります。これらの操作をBackgroundWorker上で実行し、各操作のための簡単なWinFormを記述し、フォームに必要なパラメータを渡し、フォームがBackgroundWorkerを呼び出して関数呼び出しを行うパターンになっています。フォームには出力が表示されます(進行状況バーの移動、テキストの更新など)。.NETバックグラウンドワーカーの生成
明らかに、このフォームは非常にクッキーカッターです。フォームコピー間で実際に異なる部分は、どのメソッドがどのオブジェクトに対して呼び出されるかだけです。だから私たちがやりたいことは、フォームを取ったり、オブジェクト(静的呼び出しの場合はnull?)、関数名、およびパラメータの配列を渡し、そこから。我々はこれをReflectionで行うことができました。この場合の反射について私たちが好きでないことは、強タイピングの欠如です。メソッドコールのスペルミスのようなものは、実行時に捕捉され、コンパイル時ではありません。これをよりエレガントで強固にしてくれるものがありますか?私は、代表者や表情樹のようなものについて話している人について聞いたことがあります。私は前者が当てはまるとは思っていませんが、後者についてはまだ暗闇の中で少しです。
私が理解しているように、私は最終的にこのように呼び出されることになるかもしれない各メソッドのための新しいデリゲートを作成する必要がありますか? – GWLlosa
@GWLIosa - 私はそれを明確にするために少し答えを広げようとしました。各メソッドに明示的なデリゲート型を指定する必要はありません。 – driis