2011-10-17 81 views
1

我有一個看起來像WCF陣列datacontract

<?xml version="1.0" ?>   
    <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"> 
     <xs:element name="RequestResponseBase" type="RequestResponseBase" /> 
     <xs:complexType name="RequestResponseBase"> 
      <xs:sequence> 
       <xs:element name="Parameters" 
          type="Parameters"> 
       </xs:element> 
      </xs:sequence> 
     </xs:complexType> 
     <xs:complexType name="Parameters"> 
      <xs:sequence> 
       <xs:element minOccurs="0" 
          maxOccurs="unbounded" 
          name="Parameter" 
          type="Parameter"> 
       </xs:element> 
      </xs:sequence> 
     </xs:complexType> 
     <xs:complexType name="Parameter"> 
      <xs:sequence> 
       <xs:element name="Name" type="xs:string" /> 
       <xs:element name="Value" type="xs:string" /> 
      </xs:sequence> 
     </xs:complexType> 
    </xs:schema> 

我要爲各類創建datacontracts所以我定義了以下類

public class RequestResponseBase 
    { 
     public Parameters Parameters { get; set; } 
    } 


    public class Parameters 
    { 
     public Parameter[] Parameter { get; set; } 
    } 

但是一個方案,當我運行的服務和用soapUI創建一個請求它建議我填寫以下請求:

<tem:RequestResponseBase> 
    <wcf:Parameters> 
     <wcf:Parameter> 
      <wcf:Parameter> 
       <wcf:Name>gero et</wcf:Name> 
       <wcf:Value>sonoras imperio</wcf:Value> 
      </wcf:Parameter> 
     </wcf:Parameter>   
    </wcf:Parameters> 
    </tem:RequestResponseBase> 

爲什麼Parameter元素被另一個Parameter元素包裹,以及如何避免?

回答

1

如果你改變你的代碼:

public class RequestResponseBase 
{ 
    public Parameter[] Parameters { get; set; } 
} 
+0

這給了我正是我想要的,但我可能要添加一些元素'Parameters'類型。 –

+0

你不能沒有額外的水平。 – Peter

+0

你能告訴我一個我需要創建的類來達到我需要的結果嗎? –