Как получить сериализатор данных, используемый операцией WCF во время выполнения - PullRequest
0 голосов
/ 03 декабря 2009

Есть ли шанс получить сериализатор контракта данных, используемый операцией (DataContractSerializer / NetDataContractSerializer / XmlSerializer и т. Д.) Во время выполнения (например, с использованием поведения операции). Чего я хочу добиться, так это создать некоторый диагностический код, который бы сериализовал сообщения (в инспекторе сообщений), используя в настоящее время подключенный сериализатор для сравнения результатов.

Спасибо, Павел

1 Ответ

0 голосов
/ 04 декабря 2009

Посмотрите на создание инспектора сообщений на стороне службы. Оттуда вы можете получить сообщение и проверить его кодировщик. Кодировщик расскажет вам, как происходит его сериализация. Это не рабочий код, но он будет выглядеть примерно так: IDispatchMessageInspector.AfterReceiveRequest( ref Message request....){ if ( request.MessageEncoder is typeof(BinaryMessageEncoder) //do stuff.....}

...