C# 如何从WSDL文件中识别所需的属性?
我正在创建一个WCF服务,这里是服务的DataContract部分,我正在将C# 如何从WSDL文件中识别所需的属性?,c#,asp.net,.net,wcf,C#,Asp.net,.net,Wcf,我正在创建一个WCF服务,这里是服务的DataContract部分,我正在将Fromdate字段设置为必需属性 [DataContract(Name = "PriceCalculationRequest")] public class PriceReq { [DataMember(Name = "PickupDate", Order = 1, IsRequired = true , EmitDefaultValue=true)] private D
Fromdate
字段设置为必需属性
[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>
确保在进行修改后重新构建服务项目。这就是我得到的:
<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>
如果设置IsRequired=true,则会显示minoccurs=“0”表示需要
minOccurs="0"
请参阅此链接以获取解释:不幸的是,它不适用于这样的情况:(您需要使用
minOccurs
,但我不记得如何在WCF中实现它,但这是可能的。您能告诉我minOccurs=“0”的意义吗。它应该变成minOccurs=1
和maxOccurs=1
,我来看看我能为您挖掘什么。也许以下线程的底部答案对您有用:Chirag它不像minOccurs=“0”确定元素可以出现的最小次数。该值可以是0或1。(参考)默认值为1。如果元素是必需的,则minOccurs=“0”将不会按照alex Pickupdate is required属性的建议显示在此处。