Клиент WCF не может сериализовать объект (объект всегда нулевой) - PullRequest
0 голосов
/ 05 апреля 2019

Ниже приведен фрагмент кода прокси WCF, который я создал с помощью «SvcUtil» с помощью XmlSerializer.Я вызываю метод «upload», используя прокси-класс, и метод возвращает объект «uploadResponse».Внутри этого объекта объект «информация» всегда равен нулю.Я проверил fiddler и заметил, что у моего звонка был действительный SOAP XML с запросом и ответом.

[System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")]
[System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
[System.ServiceModel.MessageContractAttribute(WrapperName="uploadResponse", WrapperNamespace="http://services.ws.svgeda.bdf.fr/", IsWrapped=true)]
public partial class uploadResponse
{

    [System.ServiceModel.MessageBodyMemberAttribute(Namespace = "http://services.ws.svgeda.bdf.fr/", Name = "informations")]   
    [System.Xml.Serialization.XmlElement(Namespace = "http://services.ws.svgeda.bdf.fr/", ElementName= "informations")]   
    public ResponseUpload informations;

    public uploadResponse()
    {
    }

    public uploadResponse(ResponseUpload informations)
    {
        this.informations = informations;
    }
}

Я попытался настроить прокси, добавив элемент «Name» в «MessageBodyMemberAttribute», и я установил значение дляпространство имен, которое было пустым.И я также добавил XmlElement, чтобы посмотреть, что-то изменится.

Ниже приведен фрагмент кода XML, возвращаемый вызовами WCF для метода «загрузки» WS.

<?xml version='1.0' encoding='UTF8'?>
<soapenv:Envelope xmlns:soapenv='http://schemas.xmlsoap.org/soap/envelope/'>
    <soapenv:Body>
        <rpcOp:uploadResponse xmlns:xsi='http://www.w3.org/2001/XMLSchemainstance' xmlns:rpcOp='http://services.ws.svgeda.bdf.fr/'>
            <informations xmlns:ns2='http://services.ws.svgeda.bdf.fr/'>
                <idSource>?</idSource>
                <idGeda>{E08AEC690000CB1D96BEB5C2299E9E4E}</idGeda>
            </informations>
        </rpcOp:uploadResponse>
    </soapenv:Body>
</soapenv:Envelope>

Любая идеяпочему информационный объект пуст?Все остальные методы в веб-службе (удаление, обновление) возвращают объект ответа, который также содержит свойство с именем «информация», но с другими типами.

Спасибо и С уважением, Клемент

...