2009-06-08 70 views
7

我在WCF中创建一个返回JSON的Web服务,但DataContractJsonSerializer在某些循环引用(我不能在这种特殊情况下删除)上取消勾选。WCF自定义序列化程序

相反,我想使用Newtonsoft json库。在WCF中创建自定义序列化程序的最简单方法是什么?

注意:我知道我可以只返回一个流,但我不希望操作代码知道序列化的东西。

回答

4

重新 WCF:如果你控制线的两端(“全员” .NET),然后应用自定义序列比较简单 - 您可以新增DataContractSerializerOperationBehavior继承行为,并覆盖CreateSerializer - 见here (具有属性here)。

但是!我的了解(未经测试)是启用JSON的WCF服务不会使用此路由,而是直接应用其自己的串行器。

+0

这几乎工作,但我json被包装在xml根节点中,如下所示: {“Id”:0,“IsFinalized”:false,“IsTemplate”:false} rogueg 2009-06-09 15:46:52

+0

链接似乎被破坏。 – Adrian773 2016-10-17 02:23:31