2011-06-17 32 views
1

我正在制定一個Xml Web服務的計劃,以進入客戶端的站點供第三方使用,以便他們可以訪問客戶端的數據。Wcf休息服務 - 序列化或手工工藝的XML?

我的問題是要問的最佳實踐在這裏,並在那一刻,我醞釀了2種不同的策略:

1)創建代表我的XML數據的對象模型,並對其進行序列化(顯式或隱式通過暴露通過WCF REST端點)),使用XLINQ和返回這個作爲來自服務的字符串直接轉化我的域模型成手工製作XML中的數據

2,適當地設定了響應頭

我喜歡(1)因爲我讓系統做phys的生成ical Xml和我純粹在對象模型中工作,但版本控制成爲一個問題,我可能需要更好地控制輸出。

我喜歡(2),因爲我確實得到了很好的控制,並且版本化變得更加容易,但是我現在手工製作Xml並且出現錯誤升級的機會。

有沒有意見?我是否錯過了一些讓我兩全其美的東西?如果我知道'版本對象模型'的最佳方法,我會直接去(1) - 是否可以使用不同的名稱空間?

回答

1

我會使用序列化。只要您不嘗試使用域對象進行序列化,您可以通過DataContractSerializer或XmlSerializer對XML進行非常細緻的控制。然後,您可以使用類似於AutoMapper

+0

的域對象和序列化對象之間的映射。在這種情況下,您是否對版本控制的主題有任何評論?我想如果你的修改是可加性的,那就沒問題了,但是你如何解釋使用這個模型的重大改變,並且能夠爲你的客戶提供一個新的模式修訂版? – 2011-06-17 13:15:14