wcf如何为SOAP Web服务设置不可为空的DataMember

时间:2018-11-12 11:21:01

标签: c# web-services wcf soap wsdl

我正在实现wcf服务。 我的课程结构如下:

[DataContract]
public class NotificationsSapInfo
{
    [DataMember]
    [Required]
    [StringLength(3)] 
    public string ID_CLIENT { get; set; }
    [DataMember]
    [Required]
    [StringLength(60)]
    public string ID_OBJECT_CODE { get; set; }
    [DataMember]
    [Required]
    [StringLength(60)]
    public string ID_TYPE { get; set; }
    [DataMember]
    [StringLength(60)]
    public string ID_SUB_TYPE { get; set; }
    [DataMember]
    [StringLength(4)]
    public string ID_DIVISION { get; set; }
    [DataMember]
    [StringLength(50)]
    public string ID_LINE { get; set; }
}

发生的问题是,在生成的WSDL中,它似乎忽略了RequiredStringLength属性。

这是WSDL生成的部分。

<xs:complexType name="NotificationsSapInfo">

<xs:sequence>

<xs:element name="ID_CLIENT" type="xs:string" nillable="true" minOccurs="0"/>

<xs:element name="ID_DIVISION" type="xs:string" nillable="true" minOccurs="0"/>

<xs:element name="ID_LINE" type="xs:string" nillable="true" minOccurs="0"/>

<xs:element name="ID_OBJECT_CODE" type="xs:string" nillable="true" minOccurs="0"/>

<xs:element name="ID_SUB_TYPE" type="xs:string" nillable="true" minOccurs="0"/>

<xs:element name="ID_TYPE" type="xs:string" nillable="true" minOccurs="0"/>

</xs:sequence>

</xs:complexType>

我想念什么?

预先感谢

1 个答案:

答案 0 :(得分:0)

不确定这是否可以解决您的问题,但我将其用于数据合同和数据验证:

在您的DataMember属性上,尝试添加:IsRequired = true

[DataMember(IsRequired = true)]