Export (0) Print
Expand All

ValidationAttribute Class

Serves as the base class for all validation attributes.

Namespace:  System.ComponentModel.DataAnnotations
Assembly:  System.ComponentModel.DataAnnotations (in System.ComponentModel.DataAnnotations.dll)

public abstract class ValidationAttribute : Attribute

The ValidationAttribute type exposes the following members.

  NameDescription
Protected methodValidationAttribute()Initializes a new instance of the ValidationAttribute class.
Protected methodValidationAttribute(Func<String>)Initializes a new instance of the ValidationAttribute class with the specified function to retrieve the error message.
Protected methodValidationAttribute(String)Initializes a new instance of the ValidationAttribute class with the specified error message.
Top

  NameDescription
Public propertyErrorMessageGets or sets the non-localizable error message to display when validation fails.
Public propertyErrorMessageResourceNameGets or sets the property name on the resource type that provides the localizable error message.
Public propertyErrorMessageResourceTypeGets or sets the resource type that provides the localizable error message.
Protected propertyErrorMessageStringGets the localized or non-localized error message.
Top

  NameDescription
Public methodEqualsInfrastructure. Returns a value that indicates whether this instance is equal to a specified object. (Inherited from Attribute.)
Protected methodFinalizeAllows an object to try to free resources and perform other cleanup operations before the Object is reclaimed by garbage collection. (Inherited from Object.)
Public methodFormatErrorMessageApplies formatting to the error message.
Public methodGetHashCodeReturns the hash code for this instance. (Inherited from Attribute.)
Public methodGetTypeGets the Type of the current instance. (Inherited from Object.)
Public methodGetValidationResultDetermines whether the specified object is valid and returns an object that includes the results of the validation check.
Protected methodIsValidDetermines whether the specified object is valid.
Public methodMatchWhen overridden in a derived class, returns a value that indicates whether this instance equals a specified object. (Inherited from Attribute.)
Protected methodMemberwiseCloneCreates a shallow copy of the current Object. (Inherited from Object.)
Public methodToStringReturns a string that represents the current object. (Inherited from Object.)
Public methodValidateDetermines whether the specified object is valid and throws a ValidationException if the object is not valid.
Top

You create a class that derives from the ValidationAttribute class when you need to create a customized validation attribute. You override the IsValid method to provide the logic for your customized validation check.

The Validate method calls the IsValid method and raises a ValidationException if the value is not valid. The GetValidationResult method calls the IsValid method and returns an instance of the ValidationResult class to indicate the result of the validation check.

The following example shows a customized validation attribute that derives from ValidationAttribute. The class overrides the IsValid method to test whether the value is valid. By default, the attribute displays an error message that is included as a resource in the application.


public class EvenNumberAttribute : ValidationAttribute
{
    public EvenNumberAttribute() : base(() => Resource1.EvenNumberError) { }
    public EvenNumberAttribute(string errorMessage) : base(() => errorMessage) { }

    protected override ValidationResult IsValid(object value, 
        ValidationContext validationContext)
    {
        if (value == null)
        {
            return ValidationResult.Success;
        }

        int convertedValue;
        try
        {
            convertedValue = Convert.ToInt32(value);
        }
        catch (FormatException)
        {
            return new ValidationResult(Resource1.ConversionError);
        }

        if (convertedValue % 2 == 0)
        {
            return ValidationResult.Success;
        }
        else
        {
            return new ValidationResult(FormatErrorMessage(validationContext.DisplayName));
        }
    }
}


Silverlight

Supported in: 5, 4, 3

For a list of the operating systems and browsers that are supported by Silverlight, see Supported Operating Systems and Browsers.

Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.

Community Additions

ADD
Show:
© 2014 Microsoft