2017-10-18 95 views
1

在我的WCF項目中,我有一個函數「添加新策略」,它帶有兩個參數。在這個函數的請求中,用於這兩個參數的前綴是「cch」。我如何將這兩個參數的前綴更改爲「tem」。WCF如何更改請求中的前綴

這是請求:

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" 
    xmlns:tem="http://tempuri.org/" 
xmlns:cch="http://schemas.datacontract.org/2004/07/CCHVisitorsInsuranceWS.NS.NewPo 
    licy"> 
     <soapenv:Header/> 
     <soapenv:Body> 
      <tem:AddNewPolicy> 
      <!--Optional:--> 
      <tem:PolicyEntity> 
       <!--Optional:--> 
       <cch:PolicyNumber>?</cch:PolicyNumber> 
       <!--Optional:--> 
       <cch:eNumber>?</cch:eNumber> 
      </tem:PolicyEntity> 
      </tem:AddNewPolicy> 
     </soapenv:Body> 
    </soapenv:Envelope> 

<xs:element name="AddNewPolicy"> 
    <xs:complexType> 
    <xs:sequence> 
     <xs:element xmlns:q3="schemas.datacontract.org/2004/07/…; minOccurs="0" name="PolicyEntity" nillable="true" type="q3:PolicyEntity"/>   
    </xs:sequence> 
    </xs:complexType> 
</xs:element> 


    <wsdl:definitions xmlns:wsdl="schemas.xmlsoap.org/wsdl/"; 
    xmlns:wsap="schemas.xmlsoap.org/ws/2004/08/addressing/policy‌​"; 
    xmlns:wsa10="w3.org/2005/08/addressing"; xmlns:tns="tempuri.org/"; 
    xmlns:msc="schemas.microsoft.com/ws/2005/12/wsdl/contract"; 
    xmlns:soapenc="schemas.xmlsoap.org/soap/encoding/"; 
    xmlns:wsx="schemas.xmlsoap.org/ws/2004/09/mex"; 
    xmlns:soap="schemas.xmlsoap.org/wsdl/soap/"; 
    xmlns:wsam="w3.org/2007/05/addressing/metadata"; 
    xmlns:wsa="schemas.xmlsoap.org/ws/2004/08/addressing"; 
    xmlns:wsp="schemas.xmlsoap.org/ws/2004/09/policy"; 
    xmlns:wsaw="w3.org/2006/05/addressing/wsdl"; 
    xmlns:soap12="schemas.xmlsoap.org/wsdl/soap12/"; 
    xmlns:wsu="docs.oasis-open.org/wss/2004/01/…"; 
    xmlns:xsd="w3.org/2001/XMLSchema"; 
    name="CCHVI" 
    targetNamespace="tempuri.org/">...</wsdl:definitions> 
+0

你爲什麼要改變? – Rao

+0

因爲請求的表單是這樣的: MHH

+0

您能顯示服務接口定義嗎? – spodger

回答

0

你的問題是,你的元素AddNewPolicyPolicyEntity沒有任何名稱空間中定義;這就是爲什麼他們被分配到默認的Microsoft WCF命名空間http://tempuri.org/

你需要將它們定義爲相同的命名空間的一部分作爲PolicyEntity,即你的http://schemas.datacontract.org/2004/07/CCHVisitorsInsuranceWS.NS.NewPolicy 命名空間。

就我個人而言,無論何時我在生成的WSDL或XSD中看到http://tempuri.org/,都會對我說我的命名空間有問題。一旦我徹底擺脫它,它可能是好的。