我需要完全控制Rest Rest WCF服務中的json序列化過程。我需要替換序列化的結果,也就是類似於:如何完全控制WCF中的json序列化
{ foo: 42, bar: 43 }
有:
myFunc({ foo: 42, bar: 43 });
什麼想法?
謝謝 m。
我需要完全控制Rest Rest WCF服務中的json序列化過程。我需要替換序列化的結果,也就是類似於:如何完全控制WCF中的json序列化
{ foo: 42, bar: 43 }
有:
myFunc({ foo: 42, bar: 43 });
什麼想法?
謝謝 m。
我以前類似的問題,這是我從一個WCF服務返回一個內存流解決。一旦你完成了,你可以手動設置MIME類型。這基本上允許你返回任何結果作爲任何MIME類型。我想我用這個jsonp。對不起,我現在正在關閉iPad,所以我不能提供一個例子。快速的谷歌搜索應該會給你你所需要的。
另外,我建議使用json.net進行序列化......與標準的.net序列化相比,使用起來要容易得多。
是的,這是我最終必須採用的解決方案。 – MatteoSp 2010-06-27 22:06:44
我認爲你需要創建你自己的序列化程序。您從DataContractSerializerOperationBehavior
繼承並覆蓋CreateSerializer
。
您可以在protobuf.net中看到它是如何完成的示例。
將輸出對象擴展爲包含調用函數名稱的參數,然後在網頁上的回調中調用它可能會更簡單。
{ "func": "myFunc", "foo": "42", "bar": "43" }
其他有用的鏈接:
謝謝。我不需要那個「myFunc」參數。這是我使用的客戶端框架(extJS)誰需要它。 基本上我試圖把ExtJs和WCF /休息放在一起。但他們在處理REST/jSon的東西方面似乎有很大的不同...... – MatteoSp 2010-06-26 19:01:37
我添加了幾個鏈接。基本上你需要實現你自己的序列化器,其中包括myFunc部分。您可能會嘗試並擴展JavaScriptSerializer - http://msdn.microsoft.com/en-us/library/system.web.script.serialization.javascriptserializer.aspx – 2010-06-26 20:52:35
'myFunc(eval(response))'? – Jeriko 2010-06-26 18:39:21
我無法處理客戶端行爲,請參閱我留給Mikael的評論。 – MatteoSp 2010-06-26 19:02:34