2016-01-22 2 views
0

Я использовал wsdl.exe для Visual Studio для создания файла класса на основе https://www.docusign.net/api/3.0/api.asmx?wsdl.Docusign Connect не может десериализовать ответ

Код прост:

XmlSerializer serializer = new XmlSerializer(typeof(BusinessObjects.Docusign.DocuSignEnvelopeInformation)); 

StreamReader reader = new StreamReader(context.Request.GetBufferlessInputStream()); 

BusinessObjects.Docusign.DocuSignEnvelopeInformation envelopeStatus = (BusinessObjects.Docusign.DocuSignEnvelopeInformation)serializer.Deserialize(reader) 

;

десериализатор является compaining, что это сейчас было неожиданным:

<DocuSignEnvelopeInformation xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.docusign.net/API/3.0"> 

ответ

0

Эта проблема была решена путем объявления пространства имен по умолчанию при создании экземпляра XmlSerializer

XmlSerializer serializer = new XmlSerializer(typeof(DocuSignEnvelopeInformation), "http://www.docusign.net/API/3.0"); 

И добавив этот декоратор сгенерированного DocuSignEnvelopeInformation класс

[System.Xml.Serialization.XmlRoot (ElementName = "DocuSignEnvelopeInformation")] 
Смежные вопросы