2014-10-01 83 views
1

我在我的SQL Server數據庫中有一些基於CLR的過程需要使用REST式Web服務,發佈列表和檢索狀態集合。在CLR中爲REST式Web服務序列化/反序列化(相當)簡單對象

我想我可以使用JavaScriptSerializer和使用JSON,但我有很多的麻煩在SQL Server讓我(JSON.NETSystem.Script.Serialization不是一個組件我被允許用,顯然是爲了玩,依賴樹變得有點醜陋)。

然後我想,我可以使用XmlSerializer,但它似乎期待很多元數據(契約風格)的東西,REST服務沒有提供,它似乎沒有讓你施放您的結果XML爲特定類型(如Dictionary<int, string>decimal[]),就像我期望的JavaScriptSerializerJSON.NET序列化程序一樣。

我花了最後一小時尋找應該是一個簡單的答案或簡單的方法,我希望我的Google-fu只有埃博拉病毒。我無法找到任何有關如何做到這一點的官方建議,而且當它必須一直出現時,甚至考慮滾動我自己的序列化器/反序列化器似乎很瘋狂。

如何解析來自CLR程序集的REST式服務請求和響應,而不需要通過代碼英雄?

+0

嗯,我知道你不能從XML轉換成字典,因爲XML不能強制唯一鍵。你可以做的最好的事情是IEnumerable ,我想。 – 2014-10-01 21:11:46

+0

我有像你這樣的excact相同的問題,你有解決方案嗎? – Parsa 2017-02-10 22:35:24

回答

1

創建與您嘗試解析的XML匹配的POCO(您可以使用註釋使對象模型與XML模型相匹配),然後使用XMLSerializer解析這些POCO的對象圖。

該網站將幫助您使這項工作,因爲通常系統會生成動態組件來實現這一點(和SQL不會喜歡那樣的):

http://social.msdn.microsoft.com/Forums/sqlserver/en-US/3fa5dce3-b0f3-44f8-9b7b-65439f1c98ae/cannot-deploy-xmlserializers-clr-assemblies

你確定這有許多工作要做/應該在數據庫中完成嗎?

+0

不,它應該在託管代碼集合中完成,但我確實需要從數據庫中消耗API資源。你能否詳細說明POCOS來製作我上面引用的簡單對象? – 2014-10-02 12:31:22