Порядок проведения WCF - PullRequest
       1

Порядок проведения WCF

4 голосов
/ 30 августа 2011

Мне нужно немного необычно подключиться к событию в WCF.

Я передаю модель с клиента на сервер, и мне нужен доступ к этой модели:

  1. После того, как модель была создана , но
  2. До того, как входящие данные были фактически десериализованы в эту модель

Причина в том, что у меня действительно есть события десериализации, которые являются условными, и в идеале я хочу, чтобы само это условие было свойством объекта; таким образом, у меня будет шаблон:

создать объект-> установить свойство-> десериализовать остальную часть объекта на основе на это имущество

Есть ли в WCF событие, к которому я могу подключиться? У меня есть настроенный атрибут, который подключается к настройкам «IOperationBehavior» и «IParameterInspector», но у них нет (насколько я могу судить) действия, связывающего события создания и десериализации.

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

Есть идеи?

[Изменить] Небольшое замечание: я использую JSON в качестве транспорта данных, но это не должно влиять на окончательное решение.

1 Ответ

1 голос
/ 30 августа 2011

Теоретически можно реализовать вложенный конверт, в котором фактические данные, передаваемые в службу WCF, состоят из класса (конверта), в котором есть данные, необходимые для определения способа десериализации, и байтового массива, состоящего из реальных данных всериализованный формат.Тогда вы могли бы вручную управлять десериализацией байтового массива.

Кажется, что, возможно, есть лучший способ, но я сделал похожие вещи, и они работают.

РЕДАКТИРОВАТЬ: Возможно, IDispatchMessageInspector это правильное место для подключения?

...