【问题标题】:Cannot get request values Soap Request when tag has prefix标签具有前缀时无法获取请求值 Soap 请求
【发布时间】:2019-01-08 01:28:14
【问题描述】:

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

<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;}
    }

当我将 &lt;ns1:Transfer&gt; 中的 ns1 删除为 &lt;Transfer&gt; 时,我得到了请求值,但是当我像 &lt;ns1:Transfer&gt; 一样将其添加回来时,对象为空。我如何处理带有前缀的请求,n1

【问题讨论】:

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


    【解决方案1】:

    您应该添加命名空间,以便反序列化器知道如何解析您的 XML

    [XmlElement(Namespace="YOUR NAMESPACE")]
    

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

    xmlns:ns1="http://com.test"

    验证您的 XML Schema 是否可以通过代码访问,然后反序列化应该可以正常工作。

    你可以阅读更多关于 XML 方案和 XML 命名空间in here

    【讨论】:

    • 谢谢您的回复,请问我应该在哪里添加呢?
    • 就像我说的,请求来自客户端,我只是嘲笑它,看看为什么它没有到达我,所以我不知道命名空间 com.test 是谁
    猜你喜欢
    • 2013-08-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多