Как полностью контролировать сериализацию json в WCF - PullRequest
0 голосов
/ 26 июня 2010

Мне нужно полностью контролировать процесс сериализации json в моей службе WCF Rest. Мне нужно заменить результат сериализации, что-то похожее на:

{ foo: 42, bar: 43 }

с:

myFunc( { foo: 42, bar: 43 } );

есть идеи?

спасибо м.

Ответы [ 2 ]

3 голосов
/ 27 июня 2010

Ранее у меня была похожая проблема, которую я решил, возвращая поток памяти из службы WCF. как только вы это сделаете, вы можете установить тип MIME вручную. это в основном позволяет вам возвращать любой результат как любой тип MIME. Я думаю, что использовал это для JSONP. Извините, но сейчас я работаю над своим iPad, поэтому не могу привести пример. Быстрый поиск в Google должен получить то, что вам нужно.

Кроме того, я бы порекомендовал использовать json.net для сериализации ... с ним работать намного проще, чем со стандартным сериализованным .net.

0 голосов
/ 26 июня 2010

Я думаю, вам нужно создать свой собственный сериализатор. Вы наследуете от DataContractSerializerOperationBehavior и переопределяете CreateSerializer.

Вы можете увидеть пример того, как это делается в protobuf.net .

Может быть проще расширить ваш выходной объект, включив в него параметр, который является именем вызывающей функции, а затем вызывать его при обратном вызове на вашей веб-странице.

{ "func": "myFunc", "foo": "42", "bar": "43" }

Другие полезные ссылки:

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...