Я хочу разобрать ответ веб-сервиса в формате мыльного MTOM.
Это ответ
--MIMEBoundary_437235bf25f089af96e3a1387b60bdfbd52e58e56b20f9b0
Content - Type: application / xop + xml; charset = utf - 8; type = "text/xml"
Content - Transfer - Encoding: binary
Content - ID: < 0.737235bf25f089af96e3a1387b60bdfbd52e58e56b20f9b0 @apache.org >
<? xml version = "1.0" encoding = "utf-8" ?>
< soapenv : Envelope xmlns: soapenv = "http://schemas.xmlsoap.org/soap/envelope/" >
< soapenv:Body >
< sendDataResponse xmlns: a = "http://www.w3.org/2005/05/xmlmime" xmlns = "http://org/emedny/fts/" >
< output >< fileName > ABC.x12 </ fileName ></ output >
</ sendDataResponse >
</ soapenv:Body >
</ soapenv:Envelope >
--MIMEBoundary_437235bf25f089af96e3a1387b60bdfbd52e58e56b20f9b0--
Я пытался использовать XmlDictionaryReader, но выдает ошибку
«На этой платформе не поддерживается кодирование сообщений механизма оптимизации передачи сообщений (MTOM)».
string MTOM = response;
MemoryStream ms;
ItemOperations obj;
DataContractSerializer dcs = new DataContractSerializer(typeof(ItemOperations));
string fixedMtom = MTOM.Replace(
"Multipart/Related;boundary=437235bf25f089af96e3a1387b60bdfbd52e58e56b20f9b0;",
"Multipart/Related;boundary=\"437235bf25f089af96e3a1387b60bdfbd52e58e56b20f9b0?MTOM\";");
ms = new MemoryStream(Encoding.UTF8.GetBytes(fixedMtom));
XmlDictionaryReader reader = XmlDictionaryReader.CreateMtomReader(ms, Encoding.UTF8, XmlDictionaryReaderQuotas.Max);
Я хочу извлечь имя файла из элемента soap. Как я могу его получить?