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,因为它可能不是相同的变量因为我试图在这些事件处理程序中设置。
我该如何重构这个函数?