0
我有一個是從什麼地方稱爲Web API的功能,但在裏面,我有需要的代表,專門爲完整和錯誤(雖然他們的例子服務。WebAPI函數中的C#匿名函數?
public async Task<HttpResponseMessage> MyApiFuncAsync()
{
SomeService s = new Service();
HttpResponseMessage responseMessage;
EventHandler completeEventHandler = (info) => {
responseMessage = Request.CreateResponse(HttpStatusCode.OK);
};
EventHandler errorEventHandler = (error) =>{
responseMessage = Request.CreateErrorResponse(HttpStatusCode.BadRequest);
};
s.Complete += completeEventHandler;
s.Error += errorEventHandler;
try
{
await s.PerformService();
}
finally
{
s.Complete -= completeEventHandler;
s.Error -= errorEventHandler;
}
return responseMessage;
}
我沒有做過在此之前,它可能工作不同於如果我的外部函數是在桌面/控制檯應用程序。
據我所知,線await s.PerformService()
會坐在那裏,直到這些事件處理程序中的一個被解僱了。所以那時,responseMessage
會已經被設置爲正確的響應了,但我想,可能最終會返回null,因爲它可能不是相同的變量因爲我試圖在這些事件處理程序中設置。
我該如何重構這個函數?