如何完全控制WCF中的json序列化

时间:2010-06-26 18:36:13

标签: wcf json serialization rest

我需要完全控制Rest WCF服务中的json序列化过程。我需要替换序列化结果,类似于:

{ foo: 42, bar: 43 }

使用:

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

任何想法?

感谢 米。

2 个答案:

答案 0 :(得分:3)

之前我遇到过类似的问题,我通过从WCF服务返回内存流来解决这个问题。完成后,您可以手动设置MIME类型。这基本上允许您以任何MIME类型返回任何结果。我想我用这个用于jsonp。对不起,我现在正在iPad上工作,所以我不能提供一个例子。快速谷歌搜索应该可以满足您的需求。

另外,我建议使用json.net进行序列化......使用它比标准的.net序列化更容易。

答案 1 :(得分:0)

我认为您需要创建自己的序列化程序。您继承自DataContractSerializerOperationBehavior并覆盖CreateSerializer

您可以在protobuf.net中看到如何完成的示例。

扩展输出对象以包含一个参数是调用函数的名称,然后在网页的回调上调用它可能更简单。

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

其他有用的链接: