stevejgordon / CorrelationId

An ASP.NET Core middleware component which synchronises a correlation ID for cross API request logging.
MIT License
558 stars 106 forks source link

Provide option for ICorrelationIdProvider to return Task<string> #94

Open VKAlwaysWin opened 3 years ago

VKAlwaysWin commented 3 years ago

Depends on provided HttpContext.Request.Body I may choose different strategies for CorrelationId value. To achieve that I am providing custom ICorrelationIdProvider, which is working great.

At the same time it is not possible to read body with Body.ReadToEndAsync, because GenerateCorrelationId return pure string, not Task To achieve what I want I may use sync operation like ReadToEnd or do ReadToEndAsync.GetAwaiter().GetResult()

Both are not the best options.

Possible solution is to change: To be this call awaitable Change default strategies to return Task.FromResult()

Could you please share your thoughts ?

Possible PR #95