Здравствуйте! Сегодня: Сб, 21 Сен 2019, Ваш IP: 35.172.100.232 Войти через loginza
 
Вход | Регистрация | Забыли пароль?
Мой Kbyte.Ru
> Список форумов Kbyte.Ru - - Web-программирование
+ Создать новую тему Страница: 1
Тема: Soap to object · +  +  дата добавления: 24.11.2015 / 15:45
Автор темы:
tantay
tantay
тем: 1 / ответов: 0 / благодарностей: 0 / репутация: 0
ответов: 0
создал(а) тем: 1


Здравствуйте форумчане,

необходимо распарсить (де/сериализовать) soap запрос/ответ

пример сообщения:
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Header />
<SOAP-ENV:Body>
<ns2:sendDocumentResponse xmlns:ns2="http://www.unicon.uz/edx/schema/documentExchange">
<ns2:result>
<ns2:result>1</ns2:result>
<ns2:resultDescription>ok</ns2:resultDescription>
</ns2:result>
<ns2:envelopeId>123654</ns2:envelopeId>
</ns2:sendDocumentResponse>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>

классы:
[DataContract(Name = "sendDocumentResponse", Namespace = "http://www.unicon.uz/edx/schema/documentExchange")]
public class sendDocumentResponse
{
private result resultField = new result();
private long envelopeIdField;
private bool envelopeIdFieldSpecified;
private confirmReceipt confirmReceiptField = new confirmReceipt();

[DataMember(Name = "result")]
public result result
{
get
{
return this.resultField;
}
set
{
this.resultField = value;
}
}
[DataMember(Name = "envelopeId")]
public long envelopeId
{
get
{
return this.envelopeIdField;
}
set
{
this.envelopeIdField = value;
}
}
[IgnoreDataMember]
[SoapIgnore]
public bool envelopeIdSpecified
{
get
{
return this.envelopeIdFieldSpecified;
}
set
{
this.envelopeIdFieldSpecified = value;
}
}
[DataMember(Name = "confirmReceipt")]
public confirmReceipt confirmReceipt
{
get
{
return this.confirmReceiptField;
}
set
{
this.confirmReceiptField = value;
}
}
}

DataContract(Name = "doc:result")]
public class result
{
private int result1Field;
private string resultDescriptionField;

[DataMember(Name = "result")]
public int result1
{
get
{
return this.result1Field;
}
set
{
this.result1Field = value;
}
}

[DataMember(Name = "resultDescription")]
public string resultDescription
{
get
{
return this.resultDescriptionField;
}
set
{
this.resultDescriptionField = value;
}
}
}

Как это можно реализовать? Все что можно было найти в интернете, у меня не получается.
sendDocumentResponse response1 = new sendDocumentResponse();
using (var reader = XmlReader.Create(new StringReader(System.IO.File.ReadAllText(@"data.xml").Replace("\n", " "))))
{
System.ServiceModel.Channels.Message mv = System.ServiceModel.Channels.Message.CreateMessage(reader, int.MaxValue, MessageVersion.Soap11);
response1 = mv.GetBody<sendDocumentResponse>();
}
Технологии: .NET Framework, ASP .NET, C#
 
Ответ # 1 # · +  +  дата добавления: 07.12.2015 / 12:17
Автор ответа:
JustArt
JustArt
тем: 95 / ответов: 675 / благодарностей: 3 / репутация: 35
Url: crash.kbyte.ru
Skype: ghostman12.12.2012
ответов: 675
создал(а) тем: 95


Может в начале сообщения добавить
<?xml version="1.0" encoding="utf-8"?>
--
Du Main Du BA DU
 
Страница: 1 + Создать новую тему