2009-06-08 95 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