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