2013-07-03 54 views
0

我正在創建WCF服務,這裏是服務的DataContract部分,我將Fromdate字段設置爲必需屬性。如何從WSDL文件中識別必需的屬性?

[DataContract(Name = "PriceCalculationRequest")] 
    public class PriceReq 
    { 
     [DataMember(Name = "PickupDate", Order = 1, IsRequired = true , EmitDefaultValue=true)] 
     private DateTime FromDate { get; set; } 

     [DataMember(Name = "ReturnDate", Order = 3)] 
     public DateTime ToDate { get; set; } 

     [DataMember(Order = 2)] 
     public string PickupLocation { get; set; } 

     [DataMember(Order = 4)] 
     public string ReturnLocation { get; set; } 

     public string CarType { get; set; } 
    } 

這是wsdl文件從上面的代碼生成的,我怎麼能確定哪些屬性是必需屬性,

<xs:sequence> 
<xs:element minOccurs="0" name="pickupDate" type="xs:dateTime"/> 
<xs:element minOccurs="0" name="returnDate" type="xs:dateTime"/> 
<xs:element minOccurs="0" name="pickupLocation" nillable="true" type="xs:string"/> 
<xs:element minOccurs="0" name="vehiclePreference" nillable="true" type="xs:string"/> 
</xs:sequence> 
+0

它不幸的是不幸的是:(你需要使用'minOccurs',但我不記得你可以如何在WCF中實現它,但它是可能的。 – Silvermind

+0

你能告訴我什麼是minOccurs =「0」 –

+0

它應該變成'minOccurs = 1 '和'maxOccurs = 1',我會看看我能爲你挖掘什麼。 – Silvermind

回答

1

確保你重建你的服務項目您做出修改之後。這就是我得到:

<xs:sequence> 
    <xs:element name="PickupDate" type="xs:dateTime"/> 
    <xs:element minOccurs="0" name="PickupLocation" nillable="true" type="xs:string"/> 
    <xs:element minOccurs="0" name="ReturnDate" type="xs:dateTime"/> 
    <xs:element minOccurs="0" name="ReturnLocation" nillable="true" type="xs:string"/> 
</xs:sequence> 
0

如果設置IsRequired = true時顯示的minOccurs = 「0」 的說法,則需要

minOccurs="0" 

請參閱此鏈接解釋:http://www.w3.org/TR/xmlschema-0/#OccurrenceConstraints

+0

Chirag它不是這樣,minOccurs =「0」決定,最小次數(請參閱http://www.w3schools.com/schema/el_all.asp)默認值爲1.如果元素是必需的,minOccurs =「0」將不會顯示如alex Pickupdate所建議的必要屬性在這裏。 –