Я использую:
- . 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>
Возможно ли это, поскольку я не знаю, удастся ли получить команду, которая создала устаревшую систему, для обновления объектов запроса. В настоящее время, если я выполню их в том же запросе полезная нагрузка возвращает только данные первого элемента.