我们可以将数据集传递给Web服务方法吗?如果是,那怎么样?

时间:2011-02-11 06:22:13

标签: c# asp.net web-services dataset

我们可以将数据集传递给Web服务方法吗?如果是,那怎么办?

3 个答案:

答案 0 :(得分:7)

IIRC,“是”(只有一个DataSet参数),但也“你不应该”;虽然.NET可能知道如何处理它,但Web服务意味着可以基于xml实体进行互操作; DataSet(即使在序列化为xml时)与您可以获得的距离相差甚远。 IMO最好编写一些代表您模型的基本类,并将那些公开给Web服务,因为它们可以在xsd中正确表示以用于SOAP。

答案 1 :(得分:2)

将DataSet传递给Web服务并不是一个好主意。而是使用DataSet的ReadXML或WriteXML方法将数据传递给webservice并在webservice端读取它。

编辑:如果可能的话,创建单独的类,如Marc Grawell所说,如果这对您来说不可行(这是一种罕见的情况),那么您可以使用上述方法传递数据,以获得比传递DataSet更好的方法直接

答案 2 :(得分:1)

Marc对数据集是正确的。这可能是您可以做的最糟糕的设计原则之一。 但是,您不应该像表示模型那样构建数据交换。您构造的SOAP消息应定义为消息。您不是通过线路发送对象而是SOAP消息。然后,您可以使用由该消息封装的一个对象模型,但不要将其作为对象本身发送。

基于工作消息可以让您更好地控制安全标题和错误等内容。

http://msdn.microsoft.com/en-us/library/ms734675.aspx