首页 > 解决方案 > 使方法参数不合格

问题描述

亲爱的,
我正在尝试构建 WCF Web 服务
我有一个带有参数列表的 Web 方法

如下代码:

[ServiceContract(Namespace = "http://com.mwafaqat.update.ws")]
public interface UpdateAcceptanceService
{
    [OperationContract]
    updateAcceptanceStatusResponse updateAcceptanceStatus(
        [XmlElement(Namespace = "http://com.mwafaqat.update.ws", Form = XmlSchemaForm.Unqualified)]string transactionId,
        [XmlElement(Namespace = "http://com.mwafaqat.update.ws", Form = XmlSchemaForm.Unqualified)]string nationalId,
        [XmlElement(Namespace = "http://com.mwafaqat.update.ws", Form = XmlSchemaForm.Unqualified)]status status,
        [XmlElement(Namespace = "http://com.mwafaqat.update.ws", Form = XmlSchemaForm.Unqualified)]string rejectionReason,
        [XmlElement(Namespace = "http://com.mwafaqat.update.ws", Form = XmlSchemaForm.Unqualified)]DateTime requestDate,
        [XmlElement(Namespace = "http://com.mwafaqat.update.ws", Form = XmlSchemaForm.Unqualified)]DateTime updatedDate);
}

public updateAcceptanceStatusResponse updateAcceptanceStatus(
        [XmlElement(Namespace = "http://com.mwafaqat.update.ws", Form = XmlSchemaForm.Unqualified)]string transactionId,
        [XmlElement(Namespace = "http://com.mwafaqat.update.ws", Form = XmlSchemaForm.Unqualified)]string nationalId,
        [XmlElement(Namespace = "http://com.mwafaqat.update.ws", Form = XmlSchemaForm.Unqualified)]status status,
        [XmlElement(Namespace = "http://com.mwafaqat.update.ws", Form = XmlSchemaForm.Unqualified)]string rejectionReason,
        [XmlElement(Namespace = "http://com.mwafaqat.update.ws", Form = XmlSchemaForm.Unqualified)]DateTime requestDate,
        [XmlElement(Namespace = "http://com.mwafaqat.update.ws", Form = XmlSchemaForm.Unqualified)]DateTime updatedDate)
    {
        // Business Logic code goes here
    }

我根据上面的代码得到下面的 xml:

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:com="http://com.mwafaqat.update.ws">
   <soapenv:Header/>
   <soapenv:Body>
      <com:updateAcceptanceStatus>
         
         <com:transactionId>?</com:transactionId>
         <!--Optional:-->
         <com:nationalId>?</com:nationalId>
         <!--Optional:-->
         <com:status>?</com:status>
         <!--Optional:-->
         <com:rejectionReason>?</com:rejectionReason>
         <!--Optional:-->
         <com:requestDate>?</com:requestDate>
         <!--Optional:-->
         <com:updatedDate>?</com:updatedDate>
      </com:updateAcceptanceStatus>
   </soapenv:Body>
</soapenv:Envelope>

我需要使参数不合格但它不起作用

我需要请求如下:

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:com="http://com.mwafaqat.update.ws">
   <soapenv:Header/>
   <soapenv:Body>
      <com:updateAcceptanceStatus>
         <transactionId></transactionId>
         <nationalId></nationalId>
         <status></status>
         <!--Optional:-->
         <rejectionReason></rejectionReason>
         <requestDate></requestDate>
         <updatedDate></updatedDate>
      </com:updateAcceptanceStatus>
   </soapenv:Body>
</soapenv:Envelope>

编辑#1我试过这个

   [ServiceContract(Namespace = "http://com.mwafaqat.update.ws")]
    public interface UpdateAcceptanceService
    {
        [OperationContract]
        updateAcceptanceStatusResponse updateAcceptanceStatus(
            [XmlElement(Form = XmlSchemaForm.Unqualified)]string transactionId,
            [XmlElement(Form = XmlSchemaForm.Unqualified)]string nationalId,
            [XmlElement(Form = XmlSchemaForm.Unqualified)]status status,
            [XmlElement(Form = XmlSchemaForm.Unqualified)]string rejectionReason,
            [XmlElement(Form = XmlSchemaForm.Unqualified)]DateTime requestDate,
            [XmlElement(Form = XmlSchemaForm.Unqualified)]DateTime updatedDate);

    }

但仍然如果发送请求不合格,则未设置参数的值(所有参数值为空)

标签: c#xmlwcfwsdlwcf-binding

解决方案


推荐阅读