私はサードパーティの API を使用しています。この API には、次のような、明確ではあるが類似した HTTP 関連のオブジェクトが多数あります。
TypeAService, TypeARequest, TypeAResponse
TypeBService, TypeBRequest, TypeBResponse
等
呼び出しのパターンは常に同じで、次のようになります。
myTypeXResponse = myTypeXService.SubmitRequest(myTypeXRequest);
この行を、バックオフして再試行することで特定のものを処理する基本的なコードと、その他のいくつかの詳細でラップする必要がありますTypeXServiceException
。約 10 ~ 20 行のコードを何度も入力する必要があります。このコード行を関数でラップするエレガントな方法を探しています。この関数は、呼び出されるメソッドと予想される例外タイプを指定することで呼び出すことができます。次のようなものです。
myTypeXResponse = myWrapperFunction(myTypeXService.SubmitRequest, myTypeXRequest, typeof(TypeXServiceException));
関数がオブジェクトを取得して返すようにしましたが、関数を渡すには、ここではできない関数の署名について具体的に説明する必要があります。ジェネリックでこれを行う方法があるように感じますが、オンラインでの私の調査では、私の質問に完全に答えるものは何も得られませんでした.
どんな助けでも大歓迎です。