我正在开发一个包含 RESTful Web 服务的类库(供其他开发人员使用)。我正在使用命名空间中的HttpClient
类型来System.Net.Http
异步执行我的所有 API 调用。
除了简单地发送/接收内容之外,我还想对返回的 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 方法?