При попытке десериализации ответа SOAP произошла ошибка. Я не могу получить ответ в виде строки, я взял строку и сгенерировал класс c # из XML, однако, когда я вызываю
using (var httpClient = new HttpClient(handler))
{
var httpContent = new StringContent(xmlString, Encoding.UTF8, "text/xml");
httpContent.Headers.Add("SOAPAction", Common.EPhytoNamespace);
HttpResponseMessage message = httpClient.PostAsync(_settings.HubServiceUrl, httpContent).Result;
envelope = message.Content.ReadAsAsync<HubServiceContracts.TrackingInfo.Envelope>().Result;
}
Я получаю следующее исключение:
SerializationException: ошибка в строке 1, позиция 65. Ожидается элемент 'Envelope' из пространства имен 'http://schemas.datacontract.org/2004/07/eCert.Bll.HubServiceContracts.TrackingInfo'.. Обнаружен' Element 'с именем' Envelope ', пространство имен' http://schemas.xmlsoap.org/soap/envelope/'.
Это структура сгенерированных объектов c #:
[XmlRoot(ElementName = "Body", Namespace = "http://schemas.xmlsoap.org/soap/envelope/")]
public class Body
{
[XmlElement(ElementName = "GetEnvelopeTrackingInfoResponse", Namespace = "http://ephyto.ippc.int/")]
public GetEnvelopeTrackingInfoResponse GetEnvelopeTrackingInfoResponse { get; set; }
}
[Serializable]
[XmlRoot(ElementName = "Envelope", Namespace = "http://schemas.xmlsoap.org/soap/envelope/")]
public class Envelope
{
[XmlElement(ElementName = "Body", Namespace = "http://schemas.xmlsoap.org/soap/envelope/")]
public Body Body { get; set; }
[XmlAttribute(AttributeName = "S", Namespace = "http://www.w3.org/2000/xmlns/")]
public string S { get; set; }
}
Прошу вас помочь тому, что я делаю неправильно.