DataMember attributes for Data validation

Jessica picture Jessica · Oct 15, 2012 · Viewed 27.1k times · Source

I am looking to place attributes on my WCF data contract members to validate string length and possibly use regex for more granular parameter validation.

I can the [Range] attribute for numeric and DateTime values and was wondering if any of you have found any other WCF Data Member attributes I can use for data validation. I have found a bevvy of attributes for Silverlight but not for WCF.

Answer

Prasad Kanaparthi picture Prasad Kanaparthi · Oct 15, 2012

Add System.ComponentModel.DataAnnotations reference to your project.

The reference provides some DataAnnotations which are:

RequiredAttribute, RangeAttribute, StringLengthAttribute, RegularExpressionAttribute

you can in your datacontract like below.

    [DataMember]
    [StringLength(100, MinimumLength= 10, ErrorMessage="String length should be between 10 and 100." )]
    [StringLength(50)]     // Another way... String max length 50
    public string FirstName { get; set; }

    [DataMember]
    [Range(2, 100)]
    public int Age { get; set; }

    [DataMember]
    [Required]
    [RegularExpression(@"\b[A-Z0-9._%-]+@[A-Z0-9.-]+\.[A-Z]{2,4}\b", ErrorMessage = "Invalid Mail id")]
    public string Email { get; set; }

Hope this helps.