RESTful Web サービスをラップするクラス ライブラリ (他の開発者が使用するため) を開発しています。名前空間のHttpClient
型を使用して、すべての API 呼び出しを非同期的に実行しています。System.Net.Http
単純にコンテンツを送受信するだけでなく、返された XML データに対して追加の処理を実行したいと考えています。どのように表現しても、これにはクラス ライブラリのどこかで Async/Await キーワードを使用することが含まれます。
私の質問は、Async キーワードを使用するメソッドを公開するのが良い考えか悪い考えか、そしてその理由です。Async メソッドを非公開にしてから、return ステートメントだけで追加のメソッドを作成する必要があることをどこかで読みました。それが私がやってきたことですが、それは正しくないと感じています。
Public Function InvokeAsync(command As HttpRequestMessage) As Task(Of CommandResult)
Return InvokeAsyncInternal(command)
End Function
Private Async Function InvokeAsyncInternal(command As HttpRequestMessage) As Task(Of CommandResult)
Dim rawCommandResult As HttpResponseMessage = Await myHttpClient.SendAsync(command)
Dim finalResult As CommandResult = AdditionalProcessing(rawCommandResult)
Return finalResult
End Function
これは非常に単純化されたコード サンプルであることを念頭に置いてください。Async メソッドを直接公開しないようにするための適切な議論はありますか?