1

我在用着:

  • .NET Core 3.0 (C#)
  • 用于序列化的 SOAPCore
  • SQL 服务器

我有一个来自遗留系统的预构建 SOAP 服务,该服务提供由两 (2) 个元素(RequestHeader 和 SearchPolicyDetails)构成的请求:

<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
               xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
               xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
  <soap:Body>
    <RequestHeader xmlns="http://xxx">
       <RequestDate>2019-11-18+05:30</RequestDate>
       <SourceSystemRequestNo>1001</SourceSystemRequestNo>
    </RequestHeader>
    <SearchPolicyDetails xmlns="http://xxx">
       <policyNumber>xxxxxxxx</policyNumber>
       <asOfDate>2019-12-24</asOfDate>
    </SearchPolicyDetails>
  </soap:Body>
</soap:Envelope>

如果我在我的 SOAP 端点上使用单个端点(即 RequestHeader 返回我想要的数据或 SearchPolicyDetails 返回我想要的数据。但是我想让它们连续运行,以便我可以从每个端点返回数据,我可以让两者都运行)变成一个单一的回应:

<s:Envelope xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
            xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
            xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
    <s:Body>
        <RequestHeaderResponse>
           {{DATA}}
        </RequestHeaderResponse>
        <SearchPolicyDetailsResponse>
           {{DATA}}
        </SearchPolicyDetailsResponse>
    </s:Body>
</s:Envelope>

这是否可能,因为我不知道是否有可能让构建遗留系统的团队更新请求对象。目前,如果我在同一个请求中运行它们,则有效负载仅返回第一个元素的数据。

4

0 回答 0