公式ドキュメントによると、非同期コールバックには 2 つのインターフェイスが必要であり、そのうちの 1 つは別のインターフェイスから生成できます。言うまでもなく、このように呼び出し階層をたどるのは非常に困難です。そのようなインターフェースを定義する DRY 方法はありませんか?
すべてのサービス メソッドに AsyncCallback パラメーターを追加するには、次のように新しいインターフェイスを定義する必要があります。
- サービス インターフェイスと同じ名前に Async を追加する必要があります (例: StockPriceServiceAsync)。
- サービス インターフェイスと同じパッケージに配置する必要があります。
- 各メソッドは、サービス インターフェイスと同じ名前とシグネチャを持つ必要がありますが、重要な違いがあります。メソッドには戻り値の型がなく、最後のパラメーターは AsyncCallback オブジェクトです。