Я пытаюсь сериализовать запрос soapui и использовать его вручную в программе soapui (запрос). PD: Я только что нашел этот простой способ получить этот запрос максимально похожим на формат запроса мыла. Запрос от мыла примерно такой:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:v1="http://asdasd.com/contract/businessdomain/BillPaymentsAndReceivablesManagement/ManageCustomerPayments/v1-0" xmlns:v3="http://asdasd.com/schema/util/commondatatypes/v3-0" xmlns:v31="http://asdasd.com/schema/businessdomain/common/v3-0" xmlns:v32="http://asdasd.com/schema/businessdomain/customer/v3-0"> <soapenv:Header/> <soapenv:Body> <v1:CustomerOrderPaymentRequest> <v1:RequestMetadata> <v3:requestID>?</v3:requestID> <v3:systemID>?</v3:systemID> <!--Optional:--> <v3:sourceID>?</v3:sourceID> <!--Optional:--> <v3:userID>?</v3:userID> </v1:RequestMetadata> </soapenv:Body> </soapenv:Envelope>
Сериализованный объект выглядит так:
<?xml version="1.0" encoding="utf-16"?> <CustomerOrderPaymentRequest xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <RequestMetadata xmlns="http://asdasd.com/contract/businessdomain/BillPaymentsAndReceivablesManagement/ManageCustomerPayments/v1-0"> <requestID xmlns="http://asdasd.com/schema/util/commondatatypes/v3-0">123123</requestID> <systemID xmlns="http://asdasd.com/schema/util/commondatatypes/v3-0">QWEQWE</systemID> <sourceID xmlns="http://asdasd.com/schema/util/commondatatypes/v3-0">ZXCZXC</sourceID> <userID xmlns="http://asdasd.com/schema/util/commondatatypes/v3-0">ASDASD</userID> </RequestMetadata> </CustomerOrderPaymentRequest>
Я использую это для сериализации запроса мыла:
var serxml = new System.Xml.Serialization.XmlSerializer(rst.GetType()); var ms = new MemoryStream(); serxml.Serialize(ms, rst); string xml = Encoding.UTF8.GetString(ms.ToArray());
Я могу просто заменить этот xmlns: v32 = "http://asdasd.com/schema/businessdomain/customer/v3-0" на этот v: 32 в открывающем теге, но как насчет конечного тега, поскольку он также должен быть помещен в закрывающий тег? Мне не хватает более простого способа получить запрос на мыло?