标签带有前缀时无法获取请求值Soap Request

时间:2018-07-31 15:25:55

标签: c# asp.net web-services soap

我有一个客户向我发送肥皂请求

<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://com.test">
<SOAP-ENV:Body>
<ns1:Transfer>
<TransferRequest>


<transferDescription></transferDescription>
<ccy>XOF</ccy>

</TransferRequest>
</ns1:Transfer>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>

下面是我的网络方法

[return: XmlElement(ElementName = "return")]
        [SoapDocumentMethod(Use = SoapBindingUse.Default)]

        public TransferResponse Transfer(TransferRequest TransferRequest)
        {


        }
    public class TransferResponse{

    public string Name {get;set;}
    public string Title {get;set;}
    }


public class TransferRequest
    {
[XmlElement(Namespace = "http://com.test")]
            public string transferDescription {get;set;}
[XmlElement(Namespace = "http://com.test")]
        public string ccy{get;set;}
    }

当我将<ns1:Transfer>中的ns1删除为<Transfer>时,我得到了请求值,但是当我像<ns1:Transfer>一样添加回该对象时,该对象为null。如何处理带有前缀n1的请求

1 个答案:

答案 0 :(得分:0)

您应该添加名称空间,以便反序列化程序将知道如何解析XML

[XmlElement(Namespace="YOUR NAMESPACE")]

在您发布xml名称空间的示例中:

  

xmlns:ns1 =“ http://com.test”

验证代码是否可以访问XML模式,然后反序列化应该可以正常工作。

您可以了解有关XML方案和XML名称空间in here

的更多信息