WCF客户端无法序列化对象(对象始终为null)

时间:2019-04-05 15:42:33

标签: c# wcf wcf-binding

下面是我用XmlSerializer用“ SvcUtil”创建的WCF代理的代码片段。 我使用代理类调用“ upload”方法,该方法返回“ uploadResponse”对象。 在此对象内,“信息”对象始终为null。我与小提琴手核实过,发现我的呼叫具有有效的请求和响应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来查看它是否有所更改。

下面是WCF调用返回的WS方法“ upload”的XML代码段。

<?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>

知道为什么信息对象为空吗? Web服务中的所有其他方法(删除,更新)都返回一个响应对象,该对象还包含一个名为“信息”的属性,但类型不同。

感谢与问候, 克莱门特(Clement)

0 个答案:

没有答案