Я использую функцию Azure, и мне нужно передать HttpRequestMessage по всей цепочке вызываемых асинхронных / ожидающих функций.Могу ли я вместо этого использовать AsyncLocal в этом случае?
Общий код:
public class ApiController
{
public static AsyncLocal<HttpRequestContext> httpContext = new AsyncLocal<HttpRequestContext>();
[FunctionName("api")]
public static async Task<HttpResponseMessage> RunAsync(
[HttpTrigger(AuthorizationLevel.Anonymous, "GET", "POST", Route = "{requestType}/{source?}")]
HttpRequestMessage req,
string source,
string requestType,
TraceWriter logger)
{
HttpRequestContext requestContext = new HttpRequestContext(req, requestType, source);
httpContext.Value = requestContext;
return await RequestRouter.Dispatch();
}
}
В приведенном выше коде я хочу получить доступ к httpContext внутри Dispatch ().Я беспокоюсь о том, что произойдет с параллелизмом?Изменится ли контекст для этого метода в случае запуска нового запроса?