Как получить данные из объекта контракта данных WCF в заголовки сообщения

Все мои объекты контракта данных в моем сервисе наследуются от BaseMessage...

[DataContract(Name = "BaseMessage", Namespace = "http://www..."]
public class BaseMessage
{
    [DataMember]
    public Guid MessageId { get; set; }
}

Я знаком с использованием инспекторов сообщений для просмотра фактической полезной нагрузки SOAP, проходящей по проводам. Однако я хочу как-то подключиться к конвейеру сообщений, чтобы сделать следующее:

  1. Посмотрите на входящее сообщение и в идеале считайте из него поле MessageId, не ища совпадения строки во всем объекте строкового сообщения - если нет быстрого способа сделать это.

  2. Извлечение из сообщения MessageId с целью создания заголовка внутри сообщения, содержащего MessageId. Опять же, я действительно не хочу искать во всем сообщении совпадение строк.

Я знаком с использованием IClientMessageInspector и IDispatchMessageInspector для просмотра сообщений, но я думаю, что в этой точке конвейера у меня нет доступа к реальному объекту для доступа к его полям.

Спасибо

1 ответ

Если вы хотите определить, какие элементы идут в теле сообщения по сравнению с его заголовками, вам нужен контракт сообщения.

Другие вопросы по тегам