为什么从WCF服务操作返回DataTables是一种不好的做法?

时间:2012-04-10 09:13:13

标签: wcf

我知道在WCF中序列化复杂类型的首选方法是使用DataContracts,但为什么会这样呢?

如果我从服务操作返回DataTable而不是DataContract,WCF是否使用XmlSerializer类而不是默认的DataContractSerializer?

最后,在本主题中:DataTable not accepted by svcutil - WCF Service

您是否认为问题在于返回DataTable时CLR类型无法正确映射到XSD架构定义?

1 个答案:

答案 0 :(得分:7)

在服务合同中使用DataTable的主要问题不是技术问题,而是设计问题。如果您的服务在合同中使用DataTable,那么您违反了使用标准化合同和松散耦合的SOA设计原则 这是因为如果服务返回DataTable,则合同不会指定DataTable包含的列。这将迫使服务消费者对服务提供商的内部运作有一定的了解,使系统紧密耦合。