2
我知道在WCF中序列化複雜類型的首選方法是使用DataContracts,但它爲什麼如此呢?爲什麼從WCF服務操作中返回DataTables是不好的做法?
如果我從服務操作返回一個數據表,而不是一個DataContract的不WCF使用,而不是默認的DataContractSerializer XmlSerializer類?
最後,在本主題:DataTable not accepted by svcutil - WCF Service
你覺得現在的問題是,通過返回的DataTable的CLR類型不正確映射到XSD架構定義?
所以它是所有關於互操作性。考慮到我的服務的客戶都是.NET 4中,我失去了幾個小時寫DataContract,而不是50分+列:) – Pantelis 2012-04-10 11:26:48
@Pantelis它是不是所有的互操作性返回一個DataTable。正如GTG已經指出的那樣,數據合同的定義並不明確:如果列更改,客戶端可能會由於這些更改而中斷,而數據合同將保持不變。強類型的數據集解決了這個問題,理論上可能是內聯網應用的可行解決方案,但我並不需要在這種情況下使用它們,所以我不能說它在實際中的效果如何(另請參見[this老帖](http://www.hanselman.com/blog/PermaLink,guid,d88f7539-10d8-4697-8c6e-1badb08bb3f5.aspx)) – 2012-04-10 13:44:24
是啊,我看到這篇文章昨天。說得通。那麼,DataContract寫得不好,如果你沒有實現IExtensibleDataObject,也可能會破壞現有的客戶端。但是,是的,我明白了!謝謝。 – Pantelis 2012-04-11 07:48:16