Все,Веб-API изменить входящую полезную нагрузку в форматировании
Я пытаюсь изменить полезную нагрузку входящего объекта через веб-API. В настоящее время я использую собственный форматировщик, который наследует от JsonMediaTypeFormatter
и переопределяет соответствующие методы.
выглядит так:
public override async Task<object> ReadFromStreamAsync(Type type, Stream readStream, HttpContent content, IFormatterLogger formatterLogger,
CancellationToken cancellationToken)
{
object obj = await base.ReadFromStreamAsync(type, readStream, content, formatterLogger, cancellationToken);
TrySetEventNo(obj, GetEventNo());
return obj;
}
private void TrySetEventNo(object content, long eventNo)
{
if (content is EventModelBase)
{
EventModelBase eventBase = (EventModelBase)content;
eventBase.EventNo = eventNo;
}
}
Я использую это, чтобы отслеживать каждый объект, который приходит через API.
Прежде чем это произойдет, у меня есть MessageHandler, который создает номер события и добавляет его в Request.Properties
.
Попытка получить номер события в форматировании, который был создан ранее в MessageHandler, оказывается затруднительным. Доступ HttpContext.Current.Items["MS_HttpRequestMessage"].Properties
представляется другим запросом, так как он не содержит номер события.
Я два вопроса:
- Могу ли я сделать это корректно, или есть способ лучше?
- Если я использую правильный подход, как получить правильный запрос на извлечение номера события?
Благодаря