【问题标题】:Seralizing data to and from string with soap message style使用肥皂消息样式在字符串之间序列化数据
【发布时间】:2011-08-22 18:33:08
【问题描述】:

我有一个网络服务代理。在该代理上,有一个采用两种自定义类型的方法。当我调用 Web 服务时,会生成一条肥皂消息。

在我的场景中,我手动捕获该肥皂消息(使用提琴手)。我希望能够将包含此肥皂消息(我从手动创建的文件中读取)的字符串反序列化回我的两种原始类型的实例。

我知道这对于这两种类型的 Xml DOM、XPath 和 Xml 序列化很容易做到。我已经在这样做了,尽管目前有两个单独的文件。我想将它们结合起来,并避免手动格式化捕获的 Soap 消息。

有没有更自动化的方法来利用现有的 Soap 基础设施来进行这种反序列化?我想编写一次该序列化代码,并希望它能够正常工作。

【问题讨论】:

    标签: .net web-services serialization soap xml-serialization


    【解决方案1】:

    .Net 框架似乎没有以易于使用的方式公开这一点。写入/读取数据的自定义代码(在SoapHttpClientProtocolSoapServerProtocol 中)不会直接暴露给用户。

    您可以使用此代码至少获取正确映射的请求内容:

    XmlTypeMapping xmlTypeMapping = new SoapReflectionImporter()
        .ImportTypeMapping(typeof(T));
    var xmlSerializer = new XmlSerializer(xmlTypeMapping);
    

    其余的序列化/反序列化您必须自己完成(通过使用自定义代码编写 SOAP 标头和正文,并分别将您的 XML 阅读器跳过到您的内容)。

    您也可以尝试使用SoapFormatter,尽管它已被弃用,并且在很多情况下(包括泛型)都被破坏了:

    【讨论】:

      猜你喜欢
      • 2023-03-16
      • 2013-01-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-11-24
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多