【问题标题】:Get a DataSet returned from SOAP as XML?获取从 SOAP 作为 XML 返回的数据集?
【发布时间】:2009-07-30 09:47:06
【问题描述】:

我们有一个 .NET 2 SOAP Web 服务,供我们组织内部的另一个应用程序使用。 Web 服务返回一个 .NET 数据集,如下所示:

public System.Data.DataSet GetStatementFor(string contractList,
  System.DateTime startDate, System.DateTime endDate)

现在在一个用例中,有必要访问 DataSet 对象的 XML。现在显然 DataSet 在任何情况下都是通过 XML 返回的,所以我想知道是否可以只使用在 SOAP 中表示它的 XML。通常,XML 被包装到一个 DataSet 对象中,然后我需要再次对其进行序列化。我可以跳过最后两个步骤并在有意义的情况下仍然返回 DataSet 吗?

【问题讨论】:

    标签: c# .net soap dataset asmx


    【解决方案1】:

    不,WebService 以 SOAP 格式传输 DataSet,这与 DataSet.WriteXml() 使用的格式不同。

    【讨论】:

    • 是的,我明白了。但是是否有可能掌握这种 SOAP 格式?它仍然对数据集的元数据和数据进行编码,因此它应该为它们的目的而做。据我了解,他们基本上计划通过 XSL 转换将其推送到他们想要的格式。
    • 从 WebService 通信中窥探它会很麻烦。但是您可以在接收后通过 SOAP 格式化程序运行它。不过,我会仔细检查“他们”想要什么。
    • 我认为计划是将其输入到现有代码中,该代码采用一串 XML。也许我应该告诉他们按照你说的去做 - DataSet.WriteXML() 会起作用,但我认为可以跳过与 XML 的转换。
    • 不,您要查找的 XML 不存在。您认为某处有一个字符串或 XmlDocument。不是这样。如果消息很大怎么办?
    【解决方案2】:

    我很困惑你想要什么。 DataSet 将被序列化为 XML 并在另一端反序列化为 DataSet 为什么您需要关心底层 XML?

    【讨论】:

    • 确实如此。我也不明白,但这是我得到的要求。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-23
    • 2021-07-18
    • 2014-10-07
    相关资源
    最近更新 更多